SignalR-异常传播到客户端

本文关键字:客户端 传播 异常 SignalR- | 更新日期: 2023-09-27 18:25:28

我有一个带有.NET客户端的SignalR应用程序。当服务器发生错误时,我需要能够在客户端处理这个问题。然而,这有点困难,因为Signalr总是用"UnknowUserException was throw…"之类的消息将所有异常包装成"InvalidOperationException",而不是实际给我UnknownUserException

我不知道该怎么办?

一个现在不起作用的例子(因为抛出了InvalidOperationException而不是实际的异常):

try
{
     await this.hubProxy.Invoke<Guid>("Authenticate", nww object[] { userName, languageCode, credentials });
}
catch(UnknownUserException ex)
{
     Toast.Dislay("Invalid UserName.");
}
catch(ConnectionError ex)
{
     Toast.Dislay("Connection Error.");       
}

SignalR-异常传播到客户端

在服务器上,您可以启用详细错误:

Routes.RouteTable.MapHubs(new HubConfiguration
{
    EnableDetailedErrors = true
});

请记住,通过这样做,服务器上抛出的错误将传递给客户端,这可能会揭示服务器端实现中的一些意外漏洞(仅供参考)。