IAM Roles Anywhere从Windows服务内部失败

egdjgwm8  于 2023-08-07  发布在  Windows
关注(0)|答案(1)|浏览(110)

下面的代码在Console应用程序中工作,但在从Windows服务中运行相同的代码时不工作。我们已确保运行服务的用户帐户已获得许可,但不幸的是,我们仍然收到下面的错误消息。
是否有任何选项可以尝试对此进行故障排除,或者为什么我们可能会从服务中获得此错误。

var awsOptions = new AWSOptions() {
         Region = Amazon.RegionEndpoint.USEast1,
         ProfilesLocation = "E:\\AWS\\credentials"
    };
    var buckets = await awsOptions.CreateServiceClient<Amazon.S3.IAmazonS3> ().ListBucketsAsync(default);
    Console.WriteLine(string.Join(Environment.NewLine, buckets.Buckets.Select(x => x.BucketName)));

字符集
错误消息...
无法从EC2示例元数据服务获取IAM安全凭据。
Amazon.Runtime.AmazonServiceException:无法从EC2示例元数据服务获取IAM安全凭据。在亚马逊。运行时间DefaultInstanceProfileAWSCreductions。Amazon上的FetchCredentials()。运行时间。DefaultInstanceProfileAWSCreductions。getCredentials()在Amazon。运行时间。DefaultInstanceProfileAWSCreductions。getCredentialsAsync()在Amazon。运行时间。内部。凭证检索器。InvokeAsync [T](IExecutionContext executionContext)。运行时间。内部。RetryHandler。InvokeAsync [T](IExecutionContext executionContext)。运行时间。内部。RetryHandler。InvokeAsync [T](IExecutionContext executionContext)。运行时间。内部。CallbackHandler。InvokeAsync [T](IExecutionContext executionContext)。运行时间。内部。CallbackHandler。InvokeAsync [T](IExecutionContext executionContext)at Amazon.S3.Internal.AmazonS3ExceptionHandler.InvokeAsync [T](IExecutionContext executionContext)at Amazon.运行时间。内部。ErrorCallbackHandler。InvokeAsync [T](IExecutionContext executionContext)。运行时间。内部。MetricsHandler。InvokeAsync [T](IExecutionContext executionContext)在Gaige。工作测试ConfigurationTestJob。C中的TestJob():\Users\gmarx\source\repos\institutional-claims\Gaige。作业\测试\配置测试作业。cs:系统中的第53行。RuntimeMethodHandle。系统中的InvokeMethod(Object target,Void**arguments,Signature sig,Boolean isConstructor)。反射。MethodInvoker。Invoke(Object obj,IntPtr * args,BindingFlags invokeAttr)

ybzsozfc

ybzsozfc1#

这与服务的Hangfire服务器结合使用。它在尝试注入凭证时失败,但在从服务内部示例化时成功。这是我们目前能够找到的解决方法。

var credentials = new Amazon.Runtime.ProcessAWSCredentials("e:\\aws_signing_helper.exe credential-process --certificate ...");
Amazon.S3.IAmazonS3 s3Client = new Amazon.S3.AmazonS3Client(credentials, Amazon.RegionEndpoint.USEast1);

字符集

相关问题