我在Azure上部署了一个ASP.NET 5 MVC 6应用程序,并使用SignalR 2遇到了这个问题: 从客户端开始连接时,请致电
/signalr/negotiate?clientProtocol=1.5&connectionData=%5B%7B"name"%3A"gameHub"%7D%5D&_=1460028930688
失败,错误500.
错误500背后的例外是:
异常详细信息: System.Security.Cryptography.CryptographicException:数据 保护操作不成功。这可能是由于 没有为当前线程的用户加载用户配置文件 上下文,当线程模仿时可能就是这种情况。
来源错误:
执行期间生成了未处理的异常 当前的网络请求。有关的来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈追踪:
[CryptographicException:数据保护操作是 不成功。这可能是由于没有用户造成的 为当前线程的用户上下文加载的配置文件,可能是 线程假冒的情况。]
我在SignalR CryptographicException on AzureWebsites阅读并尝试了解决方案,但是ID对我不起作用。
据我了解,Azure不允许使用LoadUserProfile。
任何解决方法?
答案 0 :(得分:3)
我遇到了同样的问题,我的修复是在致电UseAesDataProtectorProvider()
之前添加对MapSignalR()
的来电。希望这有助于某人。