Конструктор AmazonS3Client в .Net Core выдает при запуске в NETWORK_SERVICE (сервисная фабрика) - PullRequest
0 голосов
/ 11 октября 2018

Мне нужно выгрузить некоторые данные в хранилище S3 с помощью службы dotnet-core в кластере Service Fabric (который работает как NETWORK_SERVICE).

В этом сценарии я не могу создать AmazonS3Client.

var s3 = new AmazonS3Client(awsAccountKey, awsSecret, RegionEndpoint.EUCentral1);

Броски:

System.TypeInitializationException: 'Инициализатор типа для' Amazon.Runtime.Internal.DeterminedCSMConfiguration 'вызвал исключение.'

Внутреннее исключение:

UnauthorizedAccessException: Доступ к пути 'C: \ WINDOWS \ system32 \ config \ systemprofile' запрещен.

Я использую наджеты:

  • AWSSDK.S3 Version = "3.3.24.3"
  • AWSSDK.Core Version = "3.3.27"

Код работает нормально:

  • Под DotNet Framework 4.6.2 (net462) (в том же кластере сервисной фабрики)
  • Под ядром dotnet, но работает под обычным пользователем (не в сервисной фабрике)

Вопросы:

  • Можно ли использовать нюансы AWS SDK в ядре dotnet?
  • Что ищет конструктор в папке C: \ WINDOWS \ system32 \ config \ systemprofile?Я предоставил ключ учетной записи и секрет, разве этого должно быть недостаточно?
  • Есть ли какие-то настройки, которые мне не хватает, чтобы обойти проблему?

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Похоже, что это ошибка в AWSSDK.Core: https://github.com/aws/aws-sdk-net/issues/1097

0 голосов
/ 11 октября 2018

AWS SDK является стандартным пакетом точка-сеть, который должен нормально работать в Full Framework или DotNet Core, вы можете подтвердить, что когда вы запустили приложение на своем компьютере, и оно заработало.

C:\WINDOWS\system32\config\systemprofile - этопапка, используемая для хранения информации о профиле системы, аналогично фодлерам, таким как C:\users\username\,

Я бы предположил, что он пытается загрузить или сохранить что-то там, потому что он работает как NetWork Service и являетсяпри сбое я бы попробовал:

  • Запустить службу как локальный пользователь в SF вместо сетевой службы
  • Проверить, копируются ли все файлы. correclty
  • useAmazonS3Client, который получает явное AmazonS3Config вместо
  • Проверьте, установлено ли на сервере ядро ​​DotNet и совместима ли версия с той, которую вы используете
...