ron*_*nag 6 .net c# error-handling signalr
我有一个带有.NET客户端的SignalR应用程序.当服务器发生错误时,我需要能够在客户端处理此错误.但是,这有点困难,因为Signalr始终将所有异常包装到"InvalidOperationException"中,并带有"UnknownUserException was thrown ..."之类的消息,而不是实际给我的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.");
}
Run Code Online (Sandbox Code Playgroud)
在您的服务器上,您可以启用详细错误:
Routes.RouteTable.MapHubs(new HubConfiguration
{
EnableDetailedErrors = true
});
Run Code Online (Sandbox Code Playgroud)
请记住,通过执行此操作,服务器上抛出的错误将传递给客户端,这可能会揭示服务器端实现中的一些意外漏洞(仅供参考)。