我已经在我的应用程序配置中这样声明了RegionEndpoint
<add key="AWSRegion" value="EUWest1" xdt:Transform="Insert"/>
在我的程序中,我尝试将其命名为AWSRegion
private static string RegionEndPoint = ConfigurationManager.AppSettings["AWSRegion"];
所以当我声明我的SQSClient时出现错误,无法从字符串转换为RegionEndPoint
var SQSClient = new AmazonSQSClient(credentials, RegionEndPoint);
我在这里尝试了这个问题的理解How to set the EndPoint / Region for the C# .NET SDK : EC2Client?
但它适用于EC2Client,因此对我来说似乎不起作用。
我也试图使用这样的AWS开发工具包声明regionendpoint
private static RegionEndpoint RegionEndPoint = ConfigurationManager.AppSettings["AWSRegion"];
我还收到一条错误消息,提示无法从字符串类型隐式转换为Amazon.RegionEndpoint
因此,如果有办法在配置文件中添加RegionEndPoint并在SQSClient中使用它,请帮助我。
最佳答案
ConfigurationManager.AppSettings["AWSRegion"]
返回字符串值EUWest1
,但是RegionEndpoint
是一个类。AmazonSQSClient
Constructo希望将类RegionEndpoint
的实例作为第二个参数,但是由于您要传递字符串值,因此会出现错误。
您可以使用以下方法从Configuration值获取RegionEndpoint
类实例。RegionEndpoint
类具有静态方法GetBySystemName
。您需要将区域名称传递给此方法,它将返回RegionEndpoint
类的适当实例。
但是为此,您需要具有正确的区域名称才能传递。您需要将该值放入配置中。在您的情况下,配置值应为eu-west-1
。配置值EUWest1
在这里不起作用。
您可以找到AWS here的所有有效区域名称。
<add key="AWSRegion" value="eu-west-1" xdt:Transform="Insert"/>
使用上面的配置值,您可以使用以下代码来获取基于它的Region。
private static RegionEndpoint RegionEndPoint =
RegionEndpoint.GetBySystemName(ConfigurationManager.AppSettings["AWSRegion"]);
上面的代码将为您提供
EU (Ireland) Region
区域的RegionEndPoint实例,现在您可以将其用于AmazonSQSClient
,如下所示。var SQSClient = new AmazonSQSClient(credentials, RegionEndPoint);
这将帮助您解决面临的问题。
关于c# - 如何在App Config文件上的C#中为AWS AmazonSQSClient设置RegionEndPoint,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53295267/