ConfigurationManager.AppSettings["AWSRegion"]
возвращает строковое значение EUWest1
, но RegionEndpoint
является классом.
AmazonSQSClient
constructo ожидает экземпляр класса RegionEndpoint
в качестве второго параметра, но, поскольку вы передаете строковое значение, вы получаете сообщение об ошибке.
Вы можете получить экземпляр класса RegionEndpoint
из значения конфигурации, используя следующий подход.
RegionEndpoint
класс имеет статический метод GetBySystemName
. Вам нужно передать имя региона этому методу, и он вернет соответствующий экземпляр класса RegionEndpoint
.
Но для этого вам нужно указать правильное название региона. Вам нужно указать это значение в конфигурации. В вашем случае значение конфигурации должно быть eu-west-1
. Значение конфигурации EUWest1
здесь не будет работать.
Здесь вы можете найти все действительные названия регионов AWS здесь
<add key="AWSRegion" value="eu-west-1" xdt:Transform="Insert"/>
С указанным выше значением конфигурации вы можете использовать следующий код, чтобы получить регион на его основе.
private static RegionEndpoint RegionEndPoint =
RegionEndpoint.GetBySystemName(ConfigurationManager.AppSettings["AWSRegion"]);
Приведенный выше код даст вам экземпляр RegionEndPoint для EU (Ireland) Region
региона, и теперь вы можете использовать его для AmazonSQSClient
следующим образом.
var SQSClient = new AmazonSQSClient(credentials, RegionEndPoint);
Это поможет вам решить проблему, с которой вы столкнулись.