AWSSDK.Core需要AWS_ENABLE_ENDPOINT_DISCOVERY环境变量值

时间:2019-04-30 08:44:28

标签: c# amazon-web-services .net-core aws-sdk aws-sdk-net

在升级到.net core 2.2并升级到最新的AWS库版本之后,我在初始化期间遇到此运行时错误:

  

[System.InvalidOperationException]环境变量   没有将AWS_ENABLE_ENDPOINT_DISCOVERY设置为布尔值。

似乎Amazon.Runtime.EnvironmentVariableAWSEndpointDiscoveryEnabled.EnvironmentVariableAWSEndpointDiscoveryEnabled()试图读取此环境变量。

奇怪的是,它仅在同时运行(以Debug模式)多个Web API项目时发生,而不是在单独运行单个项目时发生。

其他信息:

  • .NET Core作为进程内(w / IISExpress)运行
  • 我们将其用于Dynamo,Kms,CloudFront .NET库
  • 在.net core 2.0中运行时,我们没有任何问题
  • AWSSDK.Core版本3.3.17.4
  • AWSSDK.Extensions.NETCore.Setup版本3.3.3
  • AWSSDK.Core版本:3.3.101.3
  • AWSSDK.Extensions.NETCore.Setup版本:3.3.100.1

1 个答案:

答案 0 :(得分:1)

该错误表明尚未声明该变量。所以声明它。为我工作。

尝试一下:

Environment.SetEnvironmentVariable("AWS_ENABLE_ENDPOINT_DISCOVERY", "false");

完整的代码块(以我为例):

Environment.SetEnvironmentVariable("AWS_ENABLE_ENDPOINT_DISCOVERY", "false");
var opt = Configuration.GetAWSOptions();
IAmazonS3 client = opt.CreateServiceClient<IAmazonS3>();