我想在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(快速)中更改配置。
有人对此问题有解决方案吗?谢谢!