gpt4 book ai didi

c# - 使用 Redis 的 SignalR 横向扩展 - 不支持 SSL

转载 作者:行者123 更新时间:2023-12-02 07:50:40 25 4
gpt4 key购买 nike

我已将 nuget 包 Microsoft.AspNet.SignalR.Redis 添加到我的项目中,以便我可以按照以下说明使用 redis 缓存底板扩展我的 signalR 应用程序:

http://www.asp.net/signalr/overview/performance/scaleout-with-redis

我已经在 Azure 上设置了一个 Redis 缓存服务器,并且使用到端口 6379 的非安全连接一切正常。

我现在想要启用 SSL 以提高安全性,但似乎不支持使用 nuget 插件进行 SSL 连接:

如果我尝试使用安全端口 6380,nuget 包似乎不支持 SSL 连接。

示例:

GlobalHost.DependencyResolver.UseRedis("redis-server.cloudapp.net", 6380,
"Password/Key", "ChatApp")

这些不是启用 SSL 的开关

这是连接的完整代码:

public class Startup
{
public void Configuration(IAppBuilder app)
{

// Configuration for scale out using Redis:
var redisEnabled = Convert.ToBoolean(WebConfigurationManager.AppSettings["RedisScaleOut_Enable"]);
if (redisEnabled)
{
var redisHost = WebConfigurationManager.AppSettings["RedisScaleOut_Host"];
var redisPort = Convert.ToInt16(WebConfigurationManager.AppSettings["RedisScaleOut_Port"]);
var redisPassword = WebConfigurationManager.AppSettings["RedisScaleOut_Password"];
var redisAppName = WebConfigurationManager.AppSettings["RedisScaleOut_AppName"];

GlobalHost.DependencyResolver.UseRedis(redisHost, redisPort, redisPassword, redisAppName);
}

// Branch the pipeline here for requests that start with "/signalr"
app.Map("/signalr", map =>
{
// Setup the CORS middleware to run before SignalR.
// By default this will allow all origins. You can
// configure the set of origins and/or http verbs by
// providing a cors options with a different policy.
map.UseCors(CorsOptions.AllowAll);

var hubConfiguration = new HubConfiguration
{
// You can enable JSONP by uncommenting line below.
// JSONP requests are insecure but some older browsers (and some
// versions of IE) require JSONP to work cross domain
EnableJSONP = true
};

// Run the SignalR pipeline. We're not using MapSignalR
// since this branch already runs under the "/signalr"
// path.
map.RunSignalR(hubConfiguration);
});

}
}

最佳答案

最新版本的 SignalR(当前为 2.2.1)允许使用 SSL,如下所示:

var connectionString = "myredis.redis.cache.windows.net:6380,password=myPassword,ssl=True,abortConnect=False";

GlobalHost.DependencyResolver.UseRedis(new RedisScaleoutConfiguration(connectionString, "YourServer"));

感谢 Michael Parshin 的回答:https://stackoverflow.com/a/29591328/648738

关于c# - 使用 Redis 的 SignalR 横向扩展 - 不支持 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27802834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com