【发布时间】:2020-12-20 21:41:43
【问题描述】:
我正在构建 Blazor 服务器端数据库应用程序。
我的一个要求是用户可以在不同的选项卡中打开每个网站页面。
我发现打开 5 个选项卡后,任何新页面都会被阻止呈现。如果我关闭一页,则可以呈现第 6 页。显然,这是因为浏览器一次只能支持有限数量的 SignalR 连接。我已经阅读了 Chrome 的限制是 6 一次(虽然我只能得到 5 个工作)。
Chrome 中的错误消息:
Error: Connection disconnected with error 'Error: Server returned handshake error: Handshake was canceled.'
Error: Error: Server returned handshake error: Handshake was canceled.
Uncaught (in promise) Error: Cannot send data if the connection is not in the 'Connected' State.
at e.send (blazor.server.js:1)
这个问题有解决方案吗?还是我需要探索移植到 Blazor 客户端?
我找到了有关此主题的以下文章,但不确定它是否可以应用于 Blazor 应用程序: SignalR and Browser Connection limit
这有点吓人,因为我已经构建了相当多的代码,并且不想花太多时间尝试破解解决方法。
【问题讨论】:
-
我刚刚在我的内部网络上运行了 10 个选项卡并访问了不同的页面以确保查询仍然有效 - 一切都很好。我正在运行 Google Chrome 84.0.4147.135,该站点托管在 IIS10 上。你的配置是什么?
-
我在 Windows 10 客户端上运行 Chrome 84.0.4147.105。我也看到了与 Firefox 相同的问题。服务器是在 Server 2016 上运行的 IIS 10
-
奇数。当它不呈现时,它会返回一个 HTTP 错误吗?开发工具显示什么?
-
DGrowns,只是检查您使用的是 Blazor 服务器还是 wasm?
-
Blazor 服务器,我们需要 Windows 身份验证,所以 wasm 不适合我们。
标签: signalr blazor blazor-server-side