SIgnalR:如何在连接上向客户端发送异常?

时间:2015-03-24 11:17:18

标签: c# asp.net signalr

在集线器中,我想根据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();
}

我需要做什么才能正确发送异常?

谢谢!

2 个答案:

答案 0 :(得分:5)

如果发生错误,您可以返回该错误或将自定义消息返回给客户端,根据该消息,您可以将客户端重定向到错误页面或显示错误已发生的显示对话框。

不要在服务器端抛出错误。在客户端返回错误并通知用户

答案 1 :(得分:0)

要启用向客户端发送错误详细信息,您应在Hub配置中启用此功能。在你的启动类中添加这行代码。

var hubConfiguration = new HubConfiguration {EnableDetailedErrors = true};
app.MapSignalR(hubConfiguration);