我一直在尝试查找有关SignalR Azure服务实际工作方式的更多信息,似乎很难找到。无论如何,我一直在进行实时聊天项目,并且对于使用Azure SignalR服务时的开发存在快速疑问。
似乎开发signalR应用程序应该全部在本地完成。最初,只有我自己参与这个项目,并且一切进展都很顺利。几天前,我们在项目中增加了一些团队成员,其他开发人员之一开始接触我建立的中心。从那时起,如果我连接到Azure服务以与集线器通信(而不是在本地托管signalR),似乎在尝试调用任何集线器方法时会遇到一些奇怪且完全随机的错误。我实质上只是得到“调用集线器方法'XXX'时出错。”这些错误甚至都不是一致的,有时我成功地调用了该方法,而其他时候却没有。
奇怪的是,我的本地集线器不会引发任何异常甚至错误。似乎似乎无法一起击中我的中心。
这是我们两个人使用相同的Azure服务开发的产品,只是在我们不同的分支机构修改了相同的集线器吗?
感谢您的帮助!
答案 0 :(得分:-1)
默认情况下,SignalR不会给您详细的错误,请在以下代码中启用它:
var hubConfiguration = new HubConfiguration();
hubConfiguration.EnableDetailedErrors = true;
app.MapSignalR(hubConfiguration);
然后将其显示在客户端
$.connection.hub.error(function (error) {
console.log('SignalR error: ' + error)
});
类似地,您也可以在处理异常时将其添加到C#客户端代码中。
在某些情况下,您甚至都没有到客户端查看错误。但是,通过执行第一部分,您将启用“详细错误”,并且可以在SignalR响应上看到错误。您只需要一个诸如Chrome浏览器Web开发人员工具之类的工具,即可为您提供操作的“网络”部分,其中记录了所有数据传输状态。您可以在那里查看SignalR错误。日志中的信息将非常详细且有用。
要启用日志以及有关signalR错误的更多信息,请访问https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/hubs-api-guide-javascript-client#handleerrors
希望有帮助。