有人知道吗,我已经为此苦苦挣扎了一段时间。
我正在使用 SignalR (Asp.net 5)。当我尝试调试本地(ISS 10.0 express)时,一切正常。 SignalR 正在工作(长轮询)。
现在,当我将应用程序发布到 Azure 时,我可以访问:.azurewebsites.net/signalr/hubs
但我无法访问 .azurewebsites.net/signalr/hubs/negotiate 它返回: 指定的 CGI 应用程序遇到错误,服务器终止了该进程。
当我的网络应用程序调用 $.connection.hub.start() 时,它将失败。 获取 XHR http://xxxx.azurewebsites.net/signalr/negotiate [HTTP/1.1 502 错误网关]
我的想法已经用完了。不知道如何才能获得更多调试信息。
我的“已经尝试过”列表的一小部分:
- 将 $.connection.hub.url 路径手动设置为 http://xxxx.azurewebsites.net/signalr/
- 启用/禁用网络套接字
- 从 web.config httpPlatform 中删除了forwardWindowsAuthToken
编辑: 现在获取有关此错误的更多详细信息:
CryptographicException:数据保护操作失败。这可能是由于没有为当前线程的用户上下文加载用户配置文件而导致的,这可能是线程模拟时的情况。
仍然完全不知道如何解决这个问题!
最佳答案
通过使用appBuilder.UseAesDataProtectorProvider()解决; (来自 Owin.Security.AesDataProtectorProvider;)
我不知道这是否是最好的解决方案。
关于asp.net - SignalR 协商失败(网关错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35578257/