2

我一直在做一个项目,我们使用AWS S3来存储文件,所有这些都使用AWS SDK for Visual Studio .NET,当我意识到在生产服务器上部署应用程序访问 AWS S3 时,每次尝试都失败创建/删除文件,抛出的异常不是很明确所以不知道如何解决问题。

这是我的 C# 代码

// Create a client
AmazonS3Client client = new AmazonS3Client();
// Create a GetObject request
GetObjectRequest request = new GetObjectRequest
{
   BucketName = MyBucketS3,
   Key = MyFileKeyS3
};

当应用程序执行时

Amazon S3 客户端客户端 = new AmazonS3Client();
抛出异常

    `The type initializer for 'Amazon.S3.AmazonS3Client' threw an exception`.

我的密钥是正确的,从我的本地环境来看,它们运行良好。这是我的 web.config 文件的一个片段(带有虚拟键):

 <add key="AWSAccessKey" value="XXXXXXXXXXXXX" />
 <add key="AWSSecretKey" value="XXXXXXXXXXXXXXXXXXXXXXXXX" />
4

2 回答 2

0

这并没有特别解决您的 AmazonS3Client 问题,但我想指出,在尝试使用适用于 Windows PowerShell 的 AWS 工具时,我看到了一个非常相似的类型初始化程序异常。特别是在尝试运行时

import-module "C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowerShell\AWSPowerShell.psd1"

和/或尝试执行类似的命令时

Get-S3Bucket

然后我会得到一个类型初始化错误。

就我而言,解决方法是在我已经安装的 4.5 版本之外安装 .NET 框架的 3.5 版本。(感谢微软和亚马逊提供如此有用的错误消息。)

于 2014-05-05T18:53:30.677 回答
0

在 Github 中使用 AWS .net 中的 AWS“CognitoSync”示例代码时遇到了同样的问题。

Nuget通过将软件包升级cognitoAWS core最新版本 解决了这个问题[AWSSDK.CongnitoIdentity v3.3.1.2, AWSSDK.CognitoSync v3.3.1.6, AWSSDK.SecurityToken v3.3.0.9 and AWSSDK.Core to v3.3.8 ]

猜猜这个问题是由于不同的变量结构导致对数据的无效访问而发生的。

于 2017-01-31T11:05:16.823 回答