【发布时间】:2019-01-16 00:49:41
【问题描述】:
在回收应用程序池时,SignalR 连接被关闭并引发错误 400 大约 10 次,然后正确建立连接。该应用程序使用了一个静态机器密钥,存储在一个文件中。
我也将 PreloadEnabled 设置为 true,但没有帮助。
[16:04:51] SignalR: Unclean disconnect from websocket: [no reason given].
Closing the Websocket.
SignalR: webSockets reconnecting.
SignalR: Connecting to websocket endpoint
WebSocket connection to 'url' failed: Error during WebSocket handshake: Unexpected response code: 400
...
[16:05:07] SignalR: Client subscribed to hub 'hub'.
[16:05:07] SignalR: webSockets transport starting.
该应用程序是在 .NET Framework 4.7.1 上运行的 ASP.NET Core。它使用 SignalR 2。
【问题讨论】:
-
回收应用程序池需要时间。网站重新可用之前可能需要几秒钟 (5 - 30)。
-
预加载不应该启用帮助吗?
-
不,即使启用它仍然需要时间。预加载仅意味着无需请求即可再次激活池。
-
那么,新的应用程序池只有正确启动后才可以使用?
-
是的。但是您可以关闭自动应用程序池回收或自行安排以更好的时间。