AWSSDK.Core требует значение переменной среды AWS_ENABLE_ENDPOINT_DISCOVERY - PullRequest
0 голосов
/ 30 апреля 2019

После обновления до .net core 2.2 и обновления до последних версий библиотеки AWS я сталкиваюсь с этой ошибкой во время инициализации:

[System.InvalidOperationException] Переменная среды AWS_ENABLE_ENDPOINT_DISCOVERY не было установлено с логическим значением.

Похоже, Amazon.Runtime.EnvironmentVariableAWSEndpointDiscoveryEnabled.EnvironmentVariableAWSEndpointDiscoveryEnabled() пытается прочитать эту переменную окружения.

Что странно, так это то, что это происходит только при одновременном запуске (в режиме отладки) нескольких проектов Web API, а не при запуске отдельного проекта.

Дополнительная информация:

  • .NET Core работает как в процессе (с IISExpress)
  • Мы используем его для библиотек Dynamo, Kms, CloudFront .NET
  • У нас не было проблем при запуске в .net core 2.0
  • AWSSDK. Основная версия 3.3.17.4
  • AWSSDK.Extensions.NETCore.Setup версия 3.3.3
  • AWSSDK. Версия ядра: 3.3.101.3
  • AWSSDK.Extensions.NETCore.Setup версия: 3.3.100.1

1 Ответ

1 голос
/ 22 июня 2019

Ошибка говорит о том, что переменная не была объявлена.Так что объявите это.У меня работает.

Попробуйте это:

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

Полный блок (в моем случае):

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