【发布时间】:2016-03-21 15:41:42
【问题描述】:
错误处理程序在客户端添加如下:
$.connection.hub.url = "/signalr";
$.connection.hub.logging = true;
$.connection.hub.error(function(error) {
console.log('SignalrAdapter: ' + error);
});
$.connection.hub.start().done(function() { me.onStartDone(); });
// ...
在服务器上是:
hubConfiguration.EnableDetailedErrors = true;
按照the docs的说法应该足够了。
在我抛出异常时,它只显示一个日志文本,而不调用处理程序:
[18:18:19 GMT+0000()] SignalR: ... [[[my error description here]]] ...
在我的 cshtml 页面:
<script src="~/Scripts/vendor/jquery.signalR-2.1.2.js"></script>
<script src="~/signalr/hubs"></script>
但是,如果我将错误处理程序附加到方法本身,它就会被调用:
$.connection.operatorHub.server.myMethodName(someParam).fail(function(error) {
console.log("Error handler called: " + error);
});
如何处理一般错误?
更新。 答案如下。另请参阅:
- http://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-server#handleErrors
- SignalR, Owin and exception handling
希望对某人有所帮助。
【问题讨论】:
-
您可以尝试禁用日志记录
$.connection.hub.logging = true; -
@QuentinRoger 不,它没有帮助。
-
奇怪的是,如果我在方法的错误处理程序上停下来并评估堆栈中捕获的内容,则会调用通用错误处理程序。
标签: javascript asp.net signalr