我在我们的应用程序中集成了SignalR,它一直工作得很好。 几天前,由于某些要求,我们必须支持扩展应用程序 - 因此我们选择使用Redis进行SignalR扩展。使用SignalR改善多个Web实例的扩展性能Redis Backplane
但是,自整合以来,SignalR本身已停止工作,而我们得到的错误是:NO TRANSPORT无法成功初始化。尝试指定一个不同的传输或根本不用于自动初始化。应用
途径: - 不同版本的SignalR的尝试,网上建议 - 没有帮助 - 增加连接超时 - 没有帮助
需要解决此提供一些帮助。建议使用任何其他方法也是受欢迎的。
[UPDATE1]添加代码片段
public class Startup
{
public void Configuration(IAppBuilder app)
{
// Any connection or hub wire up and configuration should go here
GlobalHost.DependencyResolver.UseRedis("server", port, "password", "AppName");
app.MapSignalR();
}
}
更多的参考,我跟着这个链接:https://docs.microsoft.com/en-us/aspnet/signalr/overview/performance/scaleout-with-redis
[UPDATE2]
public void Configuration(IAppBuilder app)
{
GlobalHost.Configuration.ConnectionTimeout = TimeSpan.FromSeconds(110);
GlobalHost.Configuration.DisconnectTimeout = TimeSpan.FromSeconds(30);
GlobalHost.Configuration.KeepAlive = TimeSpan.FromSeconds(10);
GlobalHost.Configuration.TransportConnectTimeout = TimeSpan.FromSeconds(45);
ConfigureAuth(app);
ConfigureSignalR(app);
// SignalR backplane code changes
string server = RoleEnvironment.IsAvailable ?
RoleEnvironment.GetConfigurationSettingValue(Constant.ConfigKeys.RedisCacheEndpoint) :
ConfigurationManager.AppSettings[Constant.ConfigKeys.RedisCacheEndpoint];
string port = RoleEnvironment.IsAvailable ?
RoleEnvironment.GetConfigurationSettingValue(Constant.ConfigKeys.RedisCachePort) :
ConfigurationManager.AppSettings[Constant.ConfigKeys.RedisCachePort];
string password = RoleEnvironment.IsAvailable ?
RoleEnvironment.GetConfigurationSettingValue(Constant.ConfigKeys.RedisCachePassword) :
ConfigurationManager.AppSettings[Constant.ConfigKeys.RedisCachePassword];
const string SIGNALR_REDIS_APPNAME = "Phoenix 2.0 Admin Tool";
string connectionString = server + ":" + Int32.Parse(port) + ";password=" + password + ",ssl=True,abortConnect=False";
RedisScaleoutConfiguration cfg = new RedisScaleoutConfiguration(connectionString, SIGNALR_REDIS_APPNAME);
GlobalHost.DependencyResolver.UseRedis(cfg);
app.MapSignalR();
}
可以显示用于连接到SignalR的客户端代码吗?你如何扩大规模?您是否在一台IIS服务器上安装了ARR,以便为应用程序服务器配置Web农民? – Alisson
@Alisson - 在问题 – mitraark
中内联添加了代码段**新发现** - 它在Premis Redis服务器上运行,而不是在Azure Redis缓存中运行。假设问题可能出现在身份验证中。任何想法? – mitraark