在Windows Server 2012上检测websocket是否已安装。

5

请问有没有任何一段代码或程序可以帮助我确认 WebSocket 是否已正确安装在我的 Windows Server 2012 服务器上?

我遇到了 WebSocket 的问题。它在 Windows Server 2012 上无法正常工作。我已经在我的 Windows Server 2012 上安装了 WebSockets。

enter image description here

我已经重启了服务器两次。
WebSocket 在我的服务器上不起作用的证明是,我的以下 url(Signalr 用于决定 WebSocket 是否开启): http://abcdedf.com/signalr/default/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22myhub%22%7D%5D&_=14530662444 返回以下响应:
{
Url: "/signalr/default",
ConnectionToken: "xxxx",
ConnectionId: "cf63a537-ed4a-4d29-afaf-f0aec454b0c2",
KeepAliveTimeout: 6,
DisconnectTimeout: 9,
ConnectionTimeout: 110,
TryWebSockets: false,
ProtocolVersion: "1.5",
TransportConnectTimeout: 5,
LongPollDelay: 0
}

即 TryWebSockets: false

在我的本地Windows 8机器上运行良好的相同代码。它会给出

TryWebSockets: true

Windows Server 2012上的IIS版本为IIS 8.5。 我的站点在.Net Framework 4.5下运行。 Windows防火墙已关闭。 在我的应用程序设置中,我也添加了这个:

  <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />

在我的 web.config 文件中也有这个:
 <webSocket enabled="true"/>

在 Windows Server 2012 上,需要进行特殊设置才能使 WebSocket 正常工作吗?

是否有工具可以检查我的 Windows Server 2012 服务器上是否启用了 WebSocket?


FYI - 那应该可以工作。我已经在 Windows Server 2012 上安装了 SignalR 几次,你找到了正确的角色。我从来没有像你建议的那样需要调整 web.config。实际上,唯一的区别是我总是在 2012 R2 上完成,但我不确定那是否会有什么不同... - thab
1个回答

0

我经常遇到Windows 2012服务器的问题,这是由于Internet Explorer中的Internet选项非常严格。

尝试打开Internet Explorer -> Internet选项 -> 安全性并调整设置(为测试目的降低安全级别),然后转到高级选项并查看一些安全设置下可能会阻止套接字的设置。

我没有遇到您具体的问题,但每当Windows Server和Windows Client之间存在差异时,大多数情况是因为适用于Windows Server的安全限制。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接