如何解决无法将Steeltoe 3.0连接器连接到Redis
我最近将Steeltoe版本从2.4.3升级到了3.0.1。进行必要的更改后,看来我的应用程序无法连接到VMWare Cloud Foundry中托管的Redis。卫生检查执行器故障并出现以下错误
RedisConnectionException:无法连接到Redis服务器。本地主机上的UnabletoConnect:6379 / Interactive,正在初始化/未启动,最后:无,源:BeginConnectAsync,未完成:0,最后读取:0s前,最后写入:0s前,keep-alive:60s,状态:正在连接,mgr:每10个中的10个,最后一次心跳:永不,全球:60283年前,v:2.1.58.34321。
我的Program.cs如下所示
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如下所示。
<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如下所示。
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获取凭据,最终默认为localhost。任何指针为何如此?预先感谢
解决方法
为了在Steeltoe 3.0中从VCAP_SERVICES
拾取绑定,您还需要将其添加到.csproj:
<PackageReference Include="Steeltoe.Connector.CloudFoundry" Version="3.0.1" />
https://docs.steeltoe.io/api/v3/connectors/usage.html#cloud-foundry
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。