何を試しても、Web サービスが .aws/credentials ファイルにアクセスできないようです。
私はいつもこのエラーを受け取ります:
System.UnauthorizedAccessException: パス '{PATH}' へのアクセスが拒否されました。
これが私が試したことです:
- パスをデフォルトのディレクトリから Web サイトのルートに移動します
- 自分のユーザー アカウントとして実行するように Web サイト アプリ プールを変更する
- フォルダ
Everyone
とファイルを完全に制御できる - 同じキーとシークレットを web.config に入れると、呼び出しが機能することを確認します
- 構成からリージョンを削除しようとしました
- 構成からパスを削除しようとしました
これが私の構成です(デフォルトの場所にある場合でも、パスを指定しないと、資格情報ファイルが見つからなかったと表示されます)
<add key="AWSProfileName" value="default" />
<add key="AWSRegion" value="us-east-1"/>
<add key="AWSProfilesLocation" value="{PATH}" />
AWS ツールキットには、権利を持つ「デフォルト」プロファイルのセットアップもありますが、これはこの作業には役立ちません。
AWS docsで呼び出されたレガシー形式も試しました。私は何が欠けていますか?私は、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());