SignalR 连接不会启动到 IIS 托管的应用程序
SignalR connection won't start to IIS-hosted app
我创建了一个应用程序,正在尝试通过 SignalR 连接到后端。
ASP.NET Core 3.1 后端托管在 IIS 中以便于开发。
在客户端上调用 StartAsync 方法成功协商,但随后在 GET 上永远挂起:
GET http://localhost:81/signalr?id=W3F2TRVrx_lxZoinHzTzmA
StartAsync() 调用无法 return。
这只发生在 IIS 上。当我启动自托管应用程序时,它可以正常工作。
WebAPI 的其余部分也适用于 IIS。只是 SignalR 无法连接。
知道为什么吗?我在这里找到 quite a questions 和答案,但其中 none 实际上解决了这个精确的问题。
原来我自己找到了答案:
IIS 默认不启用 Websocket 支持。它是在 IIS 8 中引入的,必须从 windows' 可选功能启用:https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-8/iis-80-websocket-protocol-support
可选功能 -> IIS -> WWW 服务 -> 应用开发功能 -> Websocket 协议
我创建了一个应用程序,正在尝试通过 SignalR 连接到后端。
ASP.NET Core 3.1 后端托管在 IIS 中以便于开发。
在客户端上调用 StartAsync 方法成功协商,但随后在 GET 上永远挂起:
GET http://localhost:81/signalr?id=W3F2TRVrx_lxZoinHzTzmA
StartAsync() 调用无法 return。
这只发生在 IIS 上。当我启动自托管应用程序时,它可以正常工作。
WebAPI 的其余部分也适用于 IIS。只是 SignalR 无法连接。
知道为什么吗?我在这里找到 quite a
原来我自己找到了答案:
IIS 默认不启用 Websocket 支持。它是在 IIS 8 中引入的,必须从 windows' 可选功能启用:https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-8/iis-80-websocket-protocol-support
可选功能 -> IIS -> WWW 服务 -> 应用开发功能 -> Websocket 协议