SignalR 2.2和ARR3.0负载平衡
我正在使用signalr2.2 web应用程序并在IIS-8中进行托管。 在这里我尝试使用ARR3.0为我的应用程序实现负载平衡。 在我的服务器场中,我连接了两台服务器,并将路由规则设置为“加权循环”。 每个服务器都有一个带HTML页面的javascript客户端。 虽然我正在访问任何服务器的HTML页面的请求已按预期路由,但我在我的HTML页面有这个错误,信号器没有连接
WebSocket连接到 'WS://mydomain.com/signalr/connect运输=&的WebSockets clientProtocol = 1.5&connectionToken = x9rAfatyMm3TbqzrYKL1K37Z4tKrUTH7bwNmSItW55Z0ms6pe43YiQGFOmaHMyT%2BpmGz62ukt4tha72vPcJhdqLtIvsQvqvY15oYGv69JjzSuuiSL7v2l%2FccZT6tQa3Z&connectionData =%5B%7B%22name%22%3A%22chathub%22%7D%5D&TID = 1'失败:WebSocket握手期间出错:意外的响应代码:400
如果我在我的serverfarm中使这个服务器的任何一个脱机,signalr工作正常,并且不会抛出任何错误。 帮助我找到解决方案。
如果我从我的.net客户端应用程序通信signalr服务器,它将引发以下错误
在启动请求期间出错。 停止连接。
我也有这个问题。 更深入地看,错误是: The connection id is in the incorrect format
。 在Google上搜索一下之后,我读到了某个地方,当运行一个服务器场环境时,这些服务器需要共享相同的机器密钥,这个机器密钥可以在IIS中配置。
为此,请按照下列步骤操作:
Generate a unique key for each application
选项Generate a unique key for each application
密钥。 另外,您需要确保每个服务器中的应用程序使用相同的标识。 例如,选择您的应用程序节点(或站点节点,如果是这种情况),在右侧菜单中选择基本设置 ,然后连接为...。 如果选择的选项是Application用户,那么你需要检查你的应用程序池是如何配置的。 如果它使用网络服务 (和我的一样),您仍然会遇到问题,因为每个服务器都使用自己的凭据,但您必须确保它们使用相同的身份。
在我的场景中,我必须创建一个可以访问服务器场中每个服务器的用户,并使该应用程序使用同一用户。 只有这样做后,我的问题才得到解决。
链接地址: http://www.djcxy.com/p/62231.html