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.");
}
在服务器上,您可以启用详细错误:
Routes.RouteTable.MapHubs(new HubConfiguration
{
EnableDetailedErrors = true
});
请记住,通过这样做,服务器上抛出的错误将传递给客户端,这可能会揭示服务器端实现中的一些意外漏洞(仅供参考)。