Signalr WebSocket不能在Windows Server 2012 R2 + IIS 8.5上启用websocket协议,但可以在本地开发机器上运行(Win 10)

Signalr WebSocket不能在Windows Server 2012 R2 + IIS 8.5上启用websocket协议,但可以在本地开发机器(Win 10)上运行。

这两个设置按照: https : //www.iis.net/configreference/system.webserver/websocket

服务器(Websocket不工作)-Windows 2012 R2 Standard -IIS 8.5 – 启用Websockets – 客户端Chrome版本58 64位(像在开发机器上一样在服务器上本地运行 – 消除负载平衡器或networking问题)信号返回TryWebSockets:false(SSE,长时间的和永远的框架工作)

本地开发机器(WebSockets正在工作) – Windows 10 – IIS 10.0.10586.0 – 客户端Chrome版本58 64位信号返回TryWebSockets:true

Web.config有:

<system.web> <httpRuntime targetFramework="4.5"... 

 <compilation defaultLanguage="c#" debug="true" targetFramework="4.6.2"> 

抓住吸pipe:

  1. 添加<appSettings><add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/> 〜无变化本地作品/服务器没有

  2. 重新安装信号包〜不变本地工程/服务器没有(引用forms: SignalR将不会使用WebSocket协议,即使我已经在Windows 8中安装了协议 )

  3. 尝试使用Signalr 2.2.2格式2.2.1〜不变本地工程/服务器没有

  4. 服务器重新启动〜不变本地工程/服务器没有

  5. testing更改为<httpRuntime targetFramework="4.6.2"... 〜无变化本地工作/服务器没有

  6. 客户端显式设置为使用websockets

    $ .connection.hub.start({transport:'webSockets'},function(){console.log('connected started WebSockets!');})。done(function()

〜没有改变本地工作/服务器没有

已检查的程序集https://forums.asp.net/p/1872743/5263876.aspx

原来在applicationhost.config中缺少一行,需要更新才能包含:

<add name="WebSocketmodulee" lockItem="true" />