我最近将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如下所示
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获取凭据,最终默认为本地主机。有什么建议为什么会这样吗?提前感谢
发布于 2020-10-20 20:32:10
为了从Steeltoe3.0中的VCAP_SERVICES获取绑定,您还需要将以下内容添加到您的.csproj中:
<PackageReference Include="Steeltoe.Connector.CloudFoundry" Version="3.0.1" />https://docs.steeltoe.io/api/v3/connectors/usage.html#cloud-foundry
https://stackoverflow.com/questions/64444361
复制相似问题