在SignalR项目中,我有以下内容以记录异常:
HubExceptionHandler.cs
:
public class HubExceptionHandler : HubPipelineModule
{
protected override void OnIncomingError(ExceptionContext exceptionContext, IHubIncomingInvokerContext invokerContext)
{
Panic.EmailIt(exceptionContext.Error, "Exception in hub");
base.OnIncomingError(exceptionContext, invokerContext);
}
}
Startup.cs
:
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
GlobalHost.HubPipeline.AddModule(new HubExceptionHandler());
GlobalHost.DependencyResolver.Register(
typeof(MonitoringHub),
() => new MonitoringHub(new DashboardService()));
app.MapSignalR();
}
在hub的一个功能中,我所做的就是抛出异常:
public void AddDecisionServiceApiLog()
{
throw new Exception();
}
Hub管道模块中的代码永远不会被命中。当抛出异常时,我得到的只是客户端上的空响应。
我尝试覆盖BuildIncoming
中的HubExceptionHandler.cs
函数,它运行正常,因此我知道模块已成功注册。
我的猜测是,在其他地方有处理异常的东西吗?
有什么想法吗?