Azure Web应用程序:Web套接字在100秒后中止

时间:2018-04-06 10:36:38

标签: c# azure-web-sites owin

我正在编写一个Web套接字应用程序,我打算使用Azure Web应用程序在云端托管。

Web套接字是使用相当标准的Owin中间件实现的,并且在前100秒内完全正常运行。在此之后,websocket似乎像发条一样进入中止状态。

[CLIENT][06/04/2018 11:27:21] WS client connected
[CLIENT][06/04/2018 11:29:01] WS client disconnected

在IIS Express实例上尝试此操作会产生同样的问题,尽管延迟似乎是90秒而不是100(这也是一致的)。

作为Owin自主应用程序的一部分运行相同的websocket会产生超过25分钟的稳定性 - 所以这肯定是由托管服务器引起的问题。

在天蓝色网络应用程序托管上我启用了网络套接字,并且还尝试启用“始终开启”功能,希望通过阻止服务器进入待机状态来防止此问题 - 但这不是帮助

是否有任何我不知道的天蓝色设置可以调整,以便这些网络插座可以保持打开更长时间?

非常感谢

1 个答案:

答案 0 :(得分:2)

不幸的是,似乎azure和IIS都是红色的鲱鱼,而问题则是使用System.Net.Websockets.ClientWebSocket的C#实现时遇到的问题。详情摘要如下:.NET WebSockets forcibly closed despite keep-alive and activity on the connection

对于遇到此问题的其他人来说,有效(但不理想)的解决方法是在创建客户端Web套接字之前运行以下一次:

ServicePointManager.MaxServicePointIdleTime = int.MaxValue;