use*_*104 5 model-view-controller azure http-status-code-404 signalr asp.net-core
SignalR 在本地主机上工作,但在 Azure 中部署时不起作用
Asp.net Core 1.0.0 (.Net Framework 4.6.1)
SignalR.Core 2.2.1
public static void UseSignalR2(this IApplicationBuilder app)
{
app.UseAppBuilder(appBuilder => {
appBuilder.MapSignalR(new HubConfiguration());
});
GlobalHost.HubPipeline.AddModule(new ErrorHandlingPipelineModule());
GlobalHost.HubPipeline.AddModule(new LoggingPipelineModule());
}
Run Code Online (Sandbox Code Playgroud)
SignalR.js 2.2.1 使用默认设置
$.connection.hub.url = '/signalr';
200 为网址:
https://( name ).azurewebsites.com/signalr/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22productsimporthub%22%7D%5D&_=1472811629592
/signalr/negotiate - 在 localhost 上返回 200,但在 azure 中部署的应用程序返回 404
/signalr - 适用于两者 - 协议错误:未知传输。
/signalr/hubs - 适用于两者 - 正确返回 SignalR js
要找出问题的真正原因,您需要导航到协商 URL,并查找响应。
如果响应告诉您有关“ CryptographicException:数据保护操作失败...”的信息。这是修复方法。
1) 创建自定义 IDataProtectionProvider
2) 配置信号器
internal class MachineKeyProtectionProvider : IDataProtectionProvider
{
public IDataProtector Create(params string[] purposes)
{
return new MachineKeyDataProtector(purposes);
}
}
internal class MachineKeyDataProtector : IDataProtector
{
private readonly string[] _purposes;
public MachineKeyDataProtector(string[] purposes)
{
_purposes = purposes;
}
public byte[] Protect(byte[] userData)
{
//return MachineKey.Protect(userData, _purposes);
return userData;
}
public byte[] Unprotect(byte[] protectedData)
{
//return System.Web.Security.MachineKey.Unprotect(protectedData, _purposes);
return protectedData;
}
}
Run Code Online (Sandbox Code Playgroud)
我使用katana 扩展方法将 IAppBuilder 桥接到 IApplicationBuilder。这允许您的owin中间件连接到asp.net core。使用RunSignalr方法很重要
app.UseAppBuilder(appBuilder =>
{
appBuilder.SetDataProtectionProvider(new MachineKeyProtectionProvider());
appBuilder.Map("/signalr", map =>
{
var hubConfiguration = new HubConfiguration
{
EnableDetailedErrors = true
};
map.RunSignalR(hubConfiguration);
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
824 次 |
| 最近记录: |