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);