Azure 应用程序网关和信号器 websockets

Azure application gateway and signalr websockets

我在 azure 中进行了下一个设置:

  1. 一个应用程序网关平衡器
  2. 网关后端池中的两个虚拟机。
  3. 在 vms 上部署了一个信号器应用程序。

问题:

当客户端(浏览器)将调用信号器集线器服务器上的方法并且消息大小大约等于或大于 70kb 时,我收到(在信号器客户端启用日志记录):

SignalR:不干净地断开与 websocket 的连接:[未给出原因]。 SignalR:关闭 Websocket。

SignalR:清除集线器调用回调错误:连接在收到调用结果之前开始重新连接。

SignalR:[服务器方法] 执行失败。错误:连接在收到调用结果之前开始重新连接。

客户端在尝试重新连接并再次发送消息后断开连接。 重新连接时,我从服务器获得 101 HTTP 响应状态。这是日志:

SignalR:webSockets 正在重新连接。

SignalR:连接到 websocket 端点

SignalR:关闭 Websocket。

SignalR:清除集线器调用回调错误:连接已启动 在收到调用结果之前重新连接。

SignalR:[服务器方法] 执行失败。错误:连接在收到调用结果之前开始重新连接。 SignalR:webSockets 正在重新连接。

SignalR:Websocket 打开。

问题: Azure 应用程序网关是否对 websockets 消息大小有一些限制?

我通过直接访问 IIS 在 Azure 中的虚拟机上进行了尝试,当我尝试将同一消息从客户端发送到 signalr hub 时,我没有收到相同的错误消息。

我在 Azure 应用程序网关文档中找不到任何关于 websockets 消息最大大小的参考。

感谢任何帮助。

SignalR 对 websocket 消息的默认限制为 64KB。您可以通过设置 IConfigurationManager.MaxIncomingWebSocketMessageSize

来更改(或删除)限制