首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Steeltoe 3.0连接器连接到Redis

无法使用Steeltoe 3.0连接器连接到Redis
EN

Stack Overflow用户
提问于 2020-10-20 19:38:36
回答 1查看 68关注 0票数 0

我最近将Steeltoe的版本从2.4.3升级到了3.0.1。进行必要的更改后,我的应用程序似乎无法连接到VMWare Cloud Foundry中托管的Redis。运行状况检查执行器已关闭,并出现以下错误

RedisConnectionException:无法连接到redis服务器。本地主机上的UnableToConnect :6379/交互,正在初始化/未启动,上次:无,原始: BeginConnectAsync,未完成: 0,上次读取:秒前,上次写入:秒前,保活:60秒,状态:连接中,mgr: 10次可用,上次心跳:从不,全局:60283秒前,v: 2.1.58.34321。

我的Program.cs如下所示

代码语言:javascript
复制
public static class Program
{
   
    public static void Main(string[] args)
    {
       CreateHostBuilder(args).Build().Run();
    }
    
    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .AddCloudFoundryConfiguration()
            .ConfigureLogging((builderContext, loggingBuilder) =>
            {
                // Add Serilog Dynamic Logger 
                loggingBuilder.ClearProviders();
                loggingBuilder.AddDynamicSerilog();
            })
            .AddCloudFoundryActuators()
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });
}

我的.csproj如下所示。

代码语言:javascript
复制
<PackageReference Include="Serilog.Sinks.Trace" Version="2.1.0" />
<PackageReference Include="Serilog.Formatting.Compact" Version="1.1.0" />
<PackageReference Include="Steeltoe.Common.Hosting" Version="3.0.1" />
<PackageReference Include="Steeltoe.Extensions.Logging.DynamicSerilogCore" Version="3.0.1" />
<PackageReference Include="Steeltoe.Management.CloudFoundryCore" Version="3.0.1" />
<PackageReference Include="Steeltoe.Extensions.Configuration.CloudFoundryCore" Version="3.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="StackExchange.Redis" Version="2.1.58" />
<PackageReference Include="Steeltoe.Connector.ConnectorCore" Version="3.0.1" />

我的Startup.cs如下所示。

代码语言:javascript
复制
public class Startup
{
   
    public Startup(IConfiguration configuration, IWebHostEnvironment env)
    {
        Configuration = configuration;
        HostingEnvironment = env;
    }
         
    public IConfiguration Configuration { get; }

    public IWebHostEnvironment HostingEnvironment { get; }
         
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllers();
        services.AddRouting(options => options.LowercaseUrls = true);          
       
        // Add StackExchange IConnectionMultiplexer configured from Cloud Foundry
        services.AddRedisConnectionMultiplexer(configuration);
    }
  
    public void Configure(IApplicationBuilder app)
    {
       app.UseRouting();
              
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
        });
    }
}

看起来连接器无法从VCAP_SERVICES获取凭据,最终默认为本地主机。有什么建议为什么会这样吗?提前感谢

EN

回答 1

Stack Overflow用户

发布于 2020-10-20 20:32:10

为了从Steeltoe3.0中的VCAP_SERVICES获取绑定,您还需要将以下内容添加到您的.csproj中:

代码语言:javascript
复制
<PackageReference Include="Steeltoe.Connector.CloudFoundry" Version="3.0.1" />

https://docs.steeltoe.io/api/v3/connectors/usage.html#cloud-foundry

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64444361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档