.Net Core 中的 AmazonS3Client 构造函数在 NETWORK_SERVICE 下 运行 时抛出(服务结构)

AmazonS3Client constructor in .Net Core throws when running under NETWORK_SERVICE (service fabric)

我需要使用 service fabric 集群中的 dotnet-core 服务将一些数据上传到 S3 存储(运行ning 为 NETWORK_SERVICE)。

在这种情况下,我无法构建 AmazonS3Client。

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

投掷:

System.TypeInitializationException: 'The type initializer for 'Amazon.Runtime.Internal.DeterminedCSMConfiguration' threw an exception.'

Inner exception:

UnauthorizedAccessException: Access to the path 'C:\WINDOWS\system32\config\systemprofile' is denied.

我正在使用 nugets:

代码运行OK:

问题:

AWS SDK 是一个点网标准包,应该可以在 Full Framework 或 DotNet Core 上正常运行,您可以确认当您 运行 应用程序在您的计算机上运行时。

C:\WINDOWS\system32\config\systemprofile是用来存放系统配置信息的文件夹,类似于C:\users\username\

等fodlers

我假设它正在尝试 加载或保存 那里的东西,因为它是 运行 作为网络服务并且失败了,我会尝试:

  • 运行顺丰本地用户服务,而不是网络服务
  • 检查是否所有文件都被正确复制
  • 改用接收显式 AmazonS3ConfigAmazonS3Client
  • 检查服务器是否安装了DotNet core,里面的版本是否和你使用的兼容

看起来这是 AWSSDK.Core 中的错误:https://github.com/aws/aws-sdk-net/issues/1097