SIgnalR:如何在连接时向客户端发送异常?
SIgnalR: How to send exceptions to client on connect?
在集线器中,我想根据连接 Header 对客户端进行身份验证。
如果不允许客户端连接,我想抛出一个带有详细错误的异常。
但是,如果我在集线器上抛出异常,客户端只会收到“(500) 内部服务器错误”
public override Task OnConnected()
{
string clientKey = Context.Headers["clientKey"];
string version = Context.Headers["version"];
if (!this.isValid(clientKey, version))
throw new InvalidOperationException("SIGNALR: Invalid client");
return base.OnConnected();
}
我需要做什么才能正确发送异常?
谢谢!
当错误将要发生时,您可以 return 该错误或 return 您向客户端发送的自定义消息,并且根据该消息,您可以将客户端重定向到错误页面或显示指示对话框发生错误。
不要在服务器端抛出错误。 Return 客户端错误并通知用户
要启用向客户端发送错误详细信息,您应该在集线器配置中启用它。在您的启动程序中添加这行代码 class.
var hubConfiguration = new HubConfiguration {EnableDetailedErrors = true};
app.MapSignalR(hubConfiguration);
在集线器中,我想根据连接 Header 对客户端进行身份验证。
如果不允许客户端连接,我想抛出一个带有详细错误的异常。
但是,如果我在集线器上抛出异常,客户端只会收到“(500) 内部服务器错误”
public override Task OnConnected()
{
string clientKey = Context.Headers["clientKey"];
string version = Context.Headers["version"];
if (!this.isValid(clientKey, version))
throw new InvalidOperationException("SIGNALR: Invalid client");
return base.OnConnected();
}
我需要做什么才能正确发送异常?
谢谢!
当错误将要发生时,您可以 return 该错误或 return 您向客户端发送的自定义消息,并且根据该消息,您可以将客户端重定向到错误页面或显示指示对话框发生错误。
不要在服务器端抛出错误。 Return 客户端错误并通知用户
要启用向客户端发送错误详细信息,您应该在集线器配置中启用它。在您的启动程序中添加这行代码 class.
var hubConfiguration = new HubConfiguration {EnableDetailedErrors = true};
app.MapSignalR(hubConfiguration);