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身份验证后,我遇到了相同的错误。有人在报告中指出了这一点。当我启用它时,它工作得非常好,我还能够在我的中心中获得用户标识名
需要注意的一点是,我不必像上面的帖子中提到的那样设置身份验证方案您是否尝试过先在单独的进程中运行客户端代码?您可能有其他配置错误。您是否已尝试先在单独的进程中运行客户端代码?您可能有其他配置错误的内容。