在MVC 5 Web应用程序内访问适用于.NET的AWS开发工具包

时间:2020-01-31 11:45:31

标签: c# asp.net-mvc amazon-web-services amazon-s3

我想在MVC .NET Web应用程序中访问我的S3存储桶。因此,我使用适用于.NET的AWS开发工具包。我正在通过以下电话进行此操作:

var request = new ListObjectsRequest
{
     BucketName = bucketName,
     MaxKeys = maxEntries,
     Delimiter = delimiter,
     Prefix = prefix
};

var response = _amazonS3Client.ListObjects(request);

当我在控制台应用程序中运行此代码时,它工作正常。当我尝试对MCV .NET应用程序实施相同操作时,遇到了此错误:

“引发了状态为ConnectFailure的WebException。”

>    bei
> Amazon.Runtime.Internal.WebExceptionHandler.HandleException(IExecutionContext
> executionContext, WebException exception)    bei
> Amazon.Runtime.Internal.ExceptionHandler`1.Handle(IExecutionContext
> executionContext, Exception exception)    bei
> Amazon.Runtime.Internal.ErrorHandler.ProcessException(IExecutionContext
> executionContext, Exception exception)    bei
> Amazon.Runtime.Internal.ErrorHandler.<InvokeAsync>d__5`1.MoveNext()
> --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---    bei
> System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
> task)    bei
> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
> task)    bei
> Amazon.Runtime.Internal.CallbackHandler.<InvokeAsync>d__9`1.MoveNext()
> --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---    bei
> System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
> task)    bei
> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
> task)    bei
> Amazon.Runtime.Internal.EndpointDiscoveryHandler.<InvokeAsync>d__2`1.MoveNext()
> --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---    bei
> System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()    bei
> Amazon.Runtime.Internal.EndpointDiscoveryHandler.<InvokeAsync>d__2`1.MoveNext()
> --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---    bei
> System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
> task)    bei
> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
> task)    bei
> Amazon.Runtime.Internal.CredentialsRetriever.<InvokeAsync>d__7`1.MoveNext()
> --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---    bei
> System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
> task)    bei
> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
> task)    bei
> Amazon.Runtime.Internal.RetryHandler.<InvokeAsync>d__10`1.MoveNext()
> --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---    bei
> Amazon.Runtime.Internal.RetryHandler.<InvokeAsync>d__10`1.MoveNext()
> --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---    bei
> System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
> task)    bei
> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
> task)    bei
> Amazon.Runtime.Internal.CallbackHandler.<InvokeAsync>d__9`1.MoveNext()
> --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---    bei
> System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
> task)    bei
> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
> task)    bei
> Amazon.Runtime.Internal.CallbackHandler.<InvokeAsync>d__9`1.MoveNext()
> --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---    bei
> System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
> task)    bei
> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
> task)    bei
> Amazon.S3.Internal.AmazonS3ExceptionHandler.<InvokeAsync>d__1`1.MoveNext()
> --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---    bei
> System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
> task)    bei
> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
> task)    bei
> Amazon.Runtime.Internal.ErrorCallbackHandler.<InvokeAsync>d__5`1.MoveNext()
> --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---    bei
> System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
> task)    bei
> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
> task)    bei
> Amazon.Runtime.Internal.MetricsHandler.<InvokeAsync>d__1`1.MoveNext()
> --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---    bei
> System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
> task)    bei
> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
> task)    bei
> ContiTeves.AWS.S3.S3GetClient.<ListFoldersAsync>d__8.MoveNext()
> --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---    bei
> System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
> task)    bei
> System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
> task)    bei System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
> bei
> MyMvcWebTest.Controllers.AwsController.<GetFoldersFromBucket>d__1.MoveNext()
> in
> \MyMvcWebTest\sources\MyMvcWebTest\Controllers\AwsController.cs:Zeile
> 43.

似乎有些不可能从我的Web应用程序访问AWS的方法。当然,我需要在Web.config中配置某些内容,或者需要在IIS(快速)中更改配置。

有人对此问题有解决方案吗?谢谢!

0 个答案:

没有答案