无论我尝试什么,似乎我的 Web 服务都无法访问我的 .aws/credentials 文件。
我总是收到这个错误:
System.UnauthorizedAccessException:对路径“{PATH}”的访问被拒绝。
这是我尝试过的:
- 将路径从默认目录移动到网站根目录
- 更改网站应用程序池以作为我的用户帐户运行
- 完全
Everyone
控制文件夹和文件 - 验证当我将相同的密钥和秘密放入 web.config 时,调用是否有效
- 尝试从配置中删除该区域
- 尝试从配置中删除路径
这是我的配置(请注意,如果我不提供路径,即使在默认位置,它也会说没有找到凭据文件)
<add key="AWSProfileName" value="default" />
<add key="AWSRegion" value="us-east-1"/>
<add key="AWSProfilesLocation" value="{PATH}" />
在 AWS 工具包中,我也有一个“默认”配置文件设置,它具有权限,但这无助于这项工作。
我什至尝试过AWS 文档中提到的遗留格式。我错过了什么?看来我已经遵循了 AWS 在他们的文档中提出的所有内容。
我正在使用 Castle Windsor DI,这会妨碍我吗?
container.Register(
Component.For<IAmazonDynamoDB>()
.ImplementedBy<AmazonDynamoDBClient>()
.DependsOn(Dependency.OnValue<RegionEndpoint>(RegionEndpoint.USEast1))
.LifestylePerWebRequest());
container.Register(
Component.For<IDynamoDBContext>()
.ImplementedBy<DynamoDBContext>()
.DependsOn(Dependency.OnComponent<IAmazonDynamoDB, AmazonDynamoDBClient>())
.DependsOn(Dependency.OnValue<DynamoDBContextConfig>(
new DynamoDBContextConfig
{
TableNamePrefix = configurationManager.GetRequiredAppSetting<string>(Constants.Web.AppSettings.AwsDynamoDbPrefix),
Conversion = DynamoDBEntryConversion.V2
}))
.LifestylePerWebRequest());