【问题标题】:signalr 400 error for several times when recycling the application pool回收应用程序池时多次出现signalr 400错误
【发布时间】: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)。
  • 预加载不应该启用帮助吗?
  • 不,即使启用它仍然需要时间。预加载仅意味着无需请求即可再次激活池。
  • 那么,新的应用程序池只有正确启动后才可以使用?
  • 是的。但是您可以关闭自动应用程序池回收或自行安排以更好的时间。

标签: asp.net iis signalr


【解决方案1】:

问题在于它试图重新连接已关闭的套接字。解决方案是断开并重新连接。

【讨论】:

    猜你喜欢
    • 2019-08-19
    • 2015-09-02
    • 2012-09-25
    • 2012-08-11
    • 1970-01-01
    • 2023-01-03
    • 2012-03-17
    • 1970-01-01
    • 2015-01-07
    相关资源
    最近更新 更多