Kid*_*ick 2 c# amazon-sqs aws-sdk
我已经在我的应用程序配置中这样声明了RegionEndpoint
<add key="AWSRegion" value="EUWest1" xdt:Transform="Insert"/>
Run Code Online (Sandbox Code Playgroud)
在我的程序中,我尝试将其称为AWSRegion
private static string RegionEndPoint = ConfigurationManager.AppSettings["AWSRegion"];
Run Code Online (Sandbox Code Playgroud)
所以当我声明我的SQSClient时出现错误,无法从字符串转换为RegionEndPoint
var SQSClient = new AmazonSQSClient(credentials, RegionEndPoint);
Run Code Online (Sandbox Code Playgroud)
我试图在这里理解这个问题,如何为C#.NET SDK设置EndPoint / Region:EC2Client?
但它适用于EC2Client,因此对我来说似乎不起作用。
我也曾尝试使用这样的AWS开发工具包声明regionendpoint
private static RegionEndpoint RegionEndPoint = ConfigurationManager.AppSettings["AWSRegion"];
Run Code Online (Sandbox Code Playgroud)
我还收到一条错误消息,提示无法从字符串类型隐式转换为Amazon.RegionEndpoint
因此,如果有办法在配置文件中添加RegionEndPoint并在SQSClient中使用它,请帮助我。
ConfigurationManager.AppSettings["AWSRegion"]返回字符串值,EUWest1但是RegionEndpoint是一个类。
AmazonSQSClientConstructo希望将class的实例RegionEndpoint作为第二个参数,但是由于传递的是字符串值,因此会出现错误。
您可以RegionEndpoint使用以下方法从Configuration值获取类实例。
RegionEndpoint类具有静态方法GetBySystemName。您需要将区域名称传递给此方法,它将返回适当的RegionEndpoint类实例。
但是为此,您需要具有正确的区域名称才能传递。您需要将该值放入配置中。在您的情况下,配置值应为eu-west-1。配置值EUWest1在这里不起作用。
您可以在此处找到所有有效的AWS区域名称
<add key="AWSRegion" value="eu-west-1" xdt:Transform="Insert"/>
Run Code Online (Sandbox Code Playgroud)
使用上面的配置值,您可以使用以下代码来获取基于它的Region。
private static RegionEndpoint RegionEndPoint =
RegionEndpoint.GetBySystemName(ConfigurationManager.AppSettings["AWSRegion"]);
Run Code Online (Sandbox Code Playgroud)
上面的代码将为您提供Region的RegionEndPoint实例EU (Ireland) Region,现在您可以AmazonSQSClient按以下方式使用它。
var SQSClient = new AmazonSQSClient(credentials, RegionEndPoint);
Run Code Online (Sandbox Code Playgroud)
这将帮助您解决所面临的问题。
| 归档时间: |
|
| 查看次数: |
548 次 |
| 最近记录: |