Signalr 主机2.0.3中的信号器OWR出现401错误

Signalr 主机2.0.3中的信号器OWR出现401错误,signalr,signalr.client,Signalr,Signalr.client,我正在尝试设置一个负载测试,尽可能多地使用代码库。我正在同一进程中运行服务器和客户端: class Program { class Startup { public void Configuration(IAppBuilder app) { app.MapSignalR(new HubConfiguration { EnableDetailedErrors = tru

我正在尝试设置一个负载测试,尽可能多地使用代码库。我正在同一进程中运行服务器和客户端:

class Program 
{
    class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR(new HubConfiguration
            {
                EnableDetailedErrors = true
            });
        }
    }
    public static void Main(string[] args)
    {
        var signalr = "http://localhost:21337/";

        using (WebApp.Start<Startup>(signalr))
        {
            var connection = new HubConnection(signalr) {Credentials = CredentialCache.DefaultNetworkCredentials};

            var catalog = connection.CreateHubProxy("CatalogHub");

            connection.Start().Wait();

            catalog.Invoke("SendChat", String.Empty, String.Empty, String.Empty);

            Console.ReadLine();
        }
    }
}

但是,在connection.Start.Wait上,我收到一个未经授权的错误。我不知道为什么,因为IIS不在管道中。

PEBKAC。原来集线器上设置了[Authorize],但我使用的是匿名身份验证。确保Ntlm身份验证修复了该问题

    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            var listener = (HttpListener)app.Properties[typeof(HttpListener).FullName];
            listener.AuthenticationSchemes = AuthenticationSchemes.Ntlm;
            app.MapSignalR(new HubConfiguration
            {
                EnableDetailedErrors = true,
                EnableJSONP = true
            });
        }
    }

佩布卡克。原来集线器上设置了[Authorize],但我使用的是匿名身份验证。确保Ntlm身份验证修复了该问题

    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            var listener = (HttpListener)app.Properties[typeof(HttpListener).FullName];
            listener.AuthenticationSchemes = AuthenticationSchemes.Ntlm;
            app.MapSignalR(new HubConfiguration
            {
                EnableDetailedErrors = true,
                EnableJSONP = true
            });
        }
    }

在我对集线器类设置Authorize属性并发现在Web API项目的属性中禁用了Windows身份验证后,我遇到了相同的错误。有人在报告中指出了这一点。当我启用它时,它工作得非常好,我还能够在我的中心中获得用户标识名


需要注意的一点是,我不必像上面的帖子中提到的那样设置身份验证方案,在我设置hub类的Authorize属性并发现Web API项目的属性中禁用了Windows身份验证后,我遇到了相同的错误。有人在报告中指出了这一点。当我启用它时,它工作得非常好,我还能够在我的中心中获得用户标识名


需要注意的一点是,我不必像上面的帖子中提到的那样设置身份验证方案

您是否尝试过先在单独的进程中运行客户端代码?您可能有其他配置错误。您是否已尝试先在单独的进程中运行客户端代码?您可能有其他配置错误的内容。