当我调用Hub方法时,我得到帧响应:
{" invocationId":" 1","输入":3,"错误":"发生错误更新 条目。有关详细信息,请参阅内部异常。"}
如何在不手动调试和使用跳过的情况下获取详细的错误报告(发生错误的行和文件),并检查代码引发异常的位置。
在网上我发现很多代码使用了EnableDetailedErrors
services.AddSignalR(options =>
{
options.Hubs.EnableDetailedErrors = true;
});
但是选项(至少在版本1.0.0-alpha2-final中)没有属性Hub。
答案 0 :(得分:3)
目前尚未实现启用详细错误的选项。有an issue跟踪此信息。我的建议是打开服务器端的日志记录 - 原始异常将记录在那里。
答案 1 :(得分:0)
这是您需要在核心中执行的操作(不确定添加的确切版本):
// signalR
services.AddSignalR(options =>
{
if (Environment.IsDevelopment()) {
options.EnableDetailedErrors = true;
}
});
不用说,出于生产安全考虑禁用此功能的原因是,出于安全考虑,请注意,如果在生产环境中启用此功能,则可能会暴露出您不希望黑客看到的内容。
这将在浏览器控制台中显示更详细的消息,您也可以在websocket调试中查看:
快速提示:
我现在在ASPNetCore上设置了两次SignalR,我认为两次都犯了相同的错误:
// from typescript client arguments are passed like this
this.hubConnection.invoke('SendMessage', 'simon', 'hello');
// not like this
this.hubConnection.invoke('SendMessage', ['simon', 'hello']);
invoke
也将等待响应,而send
将不等待响应。因此,使用send
可能看不到错误。