我一直在努力在 .NET Core 上实现 secret 管理器。当它在我同事的 PC 上工作时,它总是在调用 GetSecretValueAsync 方法时返回套接字异常和 HTTPRequestException。
SocketException: A socket operation was attempted to an unreachable network HttpRequestException: A socket operation was attempted to an unreachable network
我已经在 Windows 上的 C:\Users\USERNAME.aws\credentials 以及每个 IIS App Pool .aws 文件夹中设置了 AWS 默认配置文件中所需的凭证文件。所有凭据以 UTF-8 格式存储,以前是 ANSI。
这是我通过 MFA 身份验证获得的凭据示例: 这是我的 aws 凭据配置和文件夹位置: 大多数情况下,我和同事的设置是一样的。现在我几乎走到了死胡同。如果有人有经验或 AWS Web 服务团队愿意帮助我解决这个问题,请告诉我。谢谢。干杯。
var data = secretManager.GetSecretValueAsync(
new GetSecretValueRequest
{
SecretId = configName
}
).Result;
更新: 我在这里发现了真正的问题,但仍然没有解决方案。因为我真的看不出 secret 管理器从哪里获得凭据。供您引用,此方法适用于我 PC 中的 .NET Framework。
最佳答案
需要更多信息来帮助。
1. aws凭证的路径通常是
C:\Users\USERNAME.aws\不是
C:\用户\用户名.aws\
2. 在此文件夹中应该有一个名为 config
的文件,其中定义了区域。放置配置 AWS Secrets Manager 的区域。举个例子
[default]
region = us-east-1
如果这对描述配置没有帮助,请
关于c# - .NET Core 2.1 上的 AWS Secrets Manager GetSecretValueAsync 套接字异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55700163/