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:
添加<appSettings><add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
〜无变化本地作品/服务器没有
重新安装信号包〜不变本地工程/服务器没有(引用forms: SignalR将不会使用WebSocket协议,即使我已经在Windows 8中安装了协议 )
尝试使用Signalr 2.2.2格式2.2.1〜不变本地工程/服务器没有
服务器重新启动〜不变本地工程/服务器没有
testing更改为<httpRuntime targetFramework="4.6.2"...
〜无变化本地工作/服务器没有
客户端显式设置为使用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" />