在集线器中,我想根据Connection 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();
}
我需要做什么才能正确发送异常?
谢谢!
答案 0 :(得分:5)
如果发生错误,您可以返回该错误或将自定义消息返回给客户端,根据该消息,您可以将客户端重定向到错误页面或显示错误已发生的显示对话框。
不要在服务器端抛出错误。在客户端返回错误并通知用户
答案 1 :(得分:0)
要启用向客户端发送错误详细信息,您应在Hub配置中启用此功能。在你的启动类中添加这行代码。
var hubConfiguration = new HubConfiguration {EnableDetailedErrors = true};
app.MapSignalR(hubConfiguration);