SignalR cannot connect to Azure Redis on SSL

2019-04-29 06:44发布

I am currently hosting my redis cache server on Azure, and have signalR relying on it as the backbone using the following...

GlobalHost.DependencyResolver.UseRedis("Server",port,"password","eventKey");

This works find on port 6379 (non-SSL) but my chat app breaks when I try to connect to the SSL port (6380) of my Azure Redis server, and the hub is never started. What could be the cause of this issue? Or am I doing something wrong?

This is the error that appears on /signalr/connect in my browser net::ERR_CONNECTION_RESET

3条回答
聊天终结者
2楼-- · 2019-04-29 07:26

You can try this: GlobalHost.DependencyResolver.UseRedis(new RedisScaleoutConfiguration(connectionString, "YourServer"));

And connection string something like:

connectionString="yourNameHere.cache.windows.net,ssl=true,password=YourPasswordKey"

Make sure you are using SignalR built with StackExchange.Redis (latest is gratest ;)

查看更多
我只想做你的唯一
3楼-- · 2019-04-29 07:34

In case anyone else hits the issue, it seems that the default connection string provided by the Azure portal contains abortConnect=False. Once I've removed that part, things started working for me.

查看更多
够拽才男人
4楼-- · 2019-04-29 07:39

I upgraded the signalr core library to version 2.2.3.0 and used the below syntax, works like a charm.

var redisServer = ConfigurationManager.AppSettings[Constants.RedisServer].ToString();

var redisServerPassword = ConfigurationManager.AppSettings[Constants.RedisServerPassword].ToString();

var connectionString = $"{redisServer},password={redisServerPassword},ssl=True,abortConnect=False";
GlobalHost.DependencyResolver.UseRedis(new RedisScaleoutConfiguration(connectionString, "APIIdentifierString"));
查看更多
登录 后发表回答