Isi*_* O. 29 .net c# windows-8 windows-runtime signalr
服务器:
public void AddLine(string line)
{
Clients.Others.addLine(line);
}
Run Code Online (Sandbox Code Playgroud)
.NET客户端:
await rtHubProxy.Invoke("AddLine", "lineInfo");
Run Code Online (Sandbox Code Playgroud)
例外:
InvalidOperationException: There was an error invoking Hub method 'xxx.AddLine'.
Run Code Online (Sandbox Code Playgroud)
实际上,我试图用复杂的对象调用方法,只是为了找到异常.因此,我更改了参数的类型并将AddLine()体留空以进行调试,奇怪的是,它仍然抛出相同的异常.
我在客户端也有另一个SignalR调用,上面只有几行,响应性地运行而没有错误.相应的服务器端代码如下:
public void Hello(string text)
{
Clients.All.hello(text);
}
Run Code Online (Sandbox Code Playgroud)
谁能找到我错在哪里?我已经调试了超过4个小时,即使在我简化代码后仍然无法找到撤消.
(严格检查拼写,没有不匹配.)
Hir*_*koo 62
很明显,你在服务器端遇到了一些问题.但要找出问题所在,您需要查看详细错误.出于安全原因,SignalR默认情况下不会给您一个详细的错误.但您可以编辑代码以获取详细错误.
首先,您需要将此代码添加到Startup.cs:
var hubConfiguration = new HubConfiguration();
hubConfiguration.EnableDetailedErrors = true;
app.MapSignalR(hubConfiguration);
Run Code Online (Sandbox Code Playgroud)
然后,要在客户端显示错误,您需要将此代码添加到您的项目:
$.connection.hub.error(function (error) {
console.log('SignalR error: ' + error)
});
Run Code Online (Sandbox Code Playgroud)
就这么简单,你很高兴.
有时您甚至没有到达客户端部分来查看错误.但是通过执行第一部分,您将启用详细错误,您可以看到SignalR响应中的错误.您只需要一个像Chrome浏览器Web开发人员工具这样的工具,它可以为您提供网络部分操作,其中记录了所有数据传输状态.你可以检查那里的SignalR错误.日志中的信息将非常详细和有用.
这是使用Chrome浏览器的示例调试,适用于通过Chrome调试工具查看SignalR错误的人:
如果您有其他问题,请告诉我.
有关其他信息,请访问:SignalR错误
归档时间: |
|
查看次数: |
24386 次 |
最近记录: |