【发布时间】:2019-04-10 22:36:55
【问题描述】:
上下文:ASP.NET SignalR 和 ASP.NET Core SignalR 之间存在差异,您可以阅读 here。
正如 ASP.NET SignalR 中的 stackoverflow post 中所述,您可以通过 ASP.NET Core SignalR 中不存在的 HubPipelineModule 在服务器端捕获未处理的异常。
我们如何在 ASP.NET Core SignalR 中捕获未处理的异常并将它们传递给客户端?
JavaScript 代码(客户端):
var hub = null;
var initWebSocket = function () {
hub = new signalR.HubConnectionBuilder().withUrl("/MyHub").build();
hub.on("ReceiveMessage", function (pMessage) {
[...]
});
hub.start().catch(function (err) {
return console.error(err.toString());
});
};
var executeWebsocketTestException = function () {
// send to server
hub.invoke("TestException").catch(function (exception) {
if(exception.type)
{
...
}
});
};
ASP.NET Core 2 集线器(服务器):
public class MyHub : Hub
{
public async Task TestException()
{
throw new SignalRTest.Exceptions.TestException("This is a Websocket Test Exception.");
}
}
【问题讨论】:
标签: c# asp.net signalr signalr-hub asp.net-core-2.1