相关疑难解决方法(0)

SignalR,Owin和异常处理

我开发了一个基于ASP.NET 4.5和Owin的示例signalR应用程序,

我在IIS 7.5上托管了该应用程序

一切都很好,但我怎么能处理Owin的异常?

请考虑以下代码:

[HubName("SampleHub")]
public class SampleHub : Hub
{
    public SampleHub()
    {
        throw new InvalidOperationException("?!");
    }
}
Run Code Online (Sandbox Code Playgroud)

这个异常不会调用Application_Error(这是我的问题)

我在哪里可以获得owin的所有异常用于日志记录和调试目的

应用程序错误 ?

我对这样的事情不感兴趣:

app.UseErrorPage(new ErrorPageOptions()
{
    ShowCookies = true,
    ShowEnvironment = true,
    ShowExceptionDetails = true,
    ShowHeaders = true,
    ShowQuery = true,
    ShowSourceCode = true
});
Run Code Online (Sandbox Code Playgroud)

这对于高级场景来说完全没用,比如asp.net web api和asp.net mvc

用于覆盖目的的OnException方法的动作过滤器要好得多.

提前致谢.

asp.net signalr owin

14
推荐指数
1
解决办法
6132
查看次数

如何在服务器端捕获ASP.NET Core 2 SignalR异常并在客户端使用JavaScript处理它们?

上下文:ASP.NET SignalR和ASP.NET Core SignalR之间有区别,您可以在此处阅读。

如本ASP.NET SignalR中的stackoverflow文章所述,您可以通过HubPipelineModuleASP.NET Core SignalR中不存在的异常在服务器端捕获未处理的异常。

我们如何捕获未处理的异常并将其传递给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)
        {
            ...
        }
    });
};
Run Code Online (Sandbox Code Playgroud)

ASP.NET Core 2集线器(服务器):

public class MyHub : Hub
{
    public async Task TestException()
    {
        throw new …
Run Code Online (Sandbox Code Playgroud)

c# asp.net signalr signalr-hub asp.net-core-2.1

8
推荐指数
1
解决办法
1128
查看次数

标签 统计

asp.net ×2

signalr ×2

asp.net-core-2.1 ×1

c# ×1

owin ×1

signalr-hub ×1