Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Websocket SignalR-在Chrome/Firefox中始终降级为服务器发送事件_Websocket_Timeout_Signalr_Downgrade - Fatal编程技术网

Websocket SignalR-在Chrome/Firefox中始终降级为服务器发送事件

Websocket SignalR-在Chrome/Firefox中始终降级为服务器发送事件,websocket,timeout,signalr,downgrade,Websocket,Timeout,Signalr,Downgrade,我有一个API应用程序和一个web应用程序(为了简单起见,在同一台服务器上——稍后我将做CORS的工作) 带IIS 8.5的Windows Server 2012 通过“程序和功能”安装的WebSocket 防火墙已关闭 api正在使用owin+信号器,并具有正确的初始化(将其修剪以查找错误): 除了与实际WebSocket的连接外,其他一切似乎都很正常。每次客户端尝试建立连接时,都会有一个超时,它会故障切换到SSE(或IE中的永久帧/长轮询)。我将超时时间增加到25秒,并且出现了相同的症状

我有一个API应用程序和一个web应用程序(为了简单起见,在同一台服务器上——稍后我将做CORS的工作)

  • 带IIS 8.5的Windows Server 2012
  • 通过“程序和功能”安装的WebSocket
  • 防火墙已关闭
api正在使用owin+信号器,并具有正确的初始化(将其修剪以查找错误):

除了与实际WebSocket的连接外,其他一切似乎都很正常。每次客户端尝试建立连接时,都会有一个超时,它会故障切换到SSE(或IE中的永久帧/长轮询)。我将超时时间增加到25秒,并且出现了相同的症状

在客户端上,当日志记录打开时,我始终会出现以下错误:

SignalR: Connecting to websocket endpoint 'ws://[myurl]'.
SignalR: Websocket opened.
SignalR: **webSockets timed out when trying to connect.**
SignalR: Closing the Websocket.
SignalR: Attempting to connect to SSE endpoint 'http://[myurl]'.
SignalR: EventSource connected.
SignalR: serverSentEvents transport selected. Initiating start request.
SignalR: The start request succeeded. Transitioning to the connected state.
我试着按照信号员团队提供的指南进行操作,但我看不出我遗漏了什么

谢谢你的帮助

更新: 我下载了一个示例并在服务器上按原样运行。
同样的情况,所以这可能是我在过程中错过的服务器配置设置。我仍然没有找到我遗漏的内容。

这可能与您的IIS设置有关。我在电视上看到了这些

-IIS必须以集成模式运行;不支持经典模式。如果使用Server Sent Events传输以经典模式运行IIS,则可能会遇到长达30秒的消息延迟

-托管应用程序必须以完全信任模式运行


此外,它还提到了.NET4.5是目标框架。希望这有所帮助。

尝试从Windows Server计算机本身建立信号机连接。这可能与网络有关。也许在客户端和服务器之间有一个代理或其他东西不能正确支持WebSocket。

如果你在一个有“公司”防火墙的网络中,它可能会破坏WebSocket握手


但是,如果通过SSL访问服务器,则可以防止这种干扰。我已经多次亲眼看到这是企业环境中WebSocket问题的原因和解决方案。

您需要在服务器管理器中为网站启用WebSocket


谢谢。我仔细检查了所有这些,它们都设置正确。问题仍然存在。您是否尝试从Windows Server计算机建立信号机连接?这可能与网络有关。也许在客户端和服务器之间有一个代理或其他东西不能正确地支持WebSockets.facility。排除所有这些问题,我忘记了检查电线的简单规则。请回答这个问题,这样我才能接受。信号机团队由政治任命的伪开发者组成。代码不重要,只有个人电脑组成员救了我的命。多谢各位。
SignalR: Connecting to websocket endpoint 'ws://[myurl]'.
SignalR: Websocket opened.
SignalR: **webSockets timed out when trying to connect.**
SignalR: Closing the Websocket.
SignalR: Attempting to connect to SSE endpoint 'http://[myurl]'.
SignalR: EventSource connected.
SignalR: serverSentEvents transport selected. Initiating start request.
SignalR: The start request succeeded. Transitioning to the connected state.