Я выполняю то, что, по моему мнению, было довольно простой задачей. У нас есть среда с несколькими серверами (DEV, TEST, PRODUCTION), и я хочу программно изменить конечную точку службы. Для этого я создаю новый EndPointAddress
и экземпляра клиента, как:WCF программно задает адрес конечной точки: в коллекции элементов конфигурации не найдено элементов, соответствующих ключу
BasicHttpBinding binding = new BasicHttpBinding("BasicHttpBinding_IMyService");
EndpointAddress endpoint = new EndpointAddress(new Uri("http://domain.name/myservice.svc"));
MyService.MyServiceClient client = new MyService.MyServiceClient(binding, endpoint);
Я получаю следующее сообщение об ошибке.
No elements matching the key 'BasicHttpBinding_IMyService' were found in the configuration element collection.
Я включил мой app.config ниже, но, как вы можете видеть, у меня есть привязка определена.
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IMyService" >
<... removed directives for ease of reading ...>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://domain.name/MyService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService"
contract="MyService.IMyService" name="BasicHttpBinding_IMyService" />
</client>
</system.serviceModel>
Извините, если это простой вопрос, но я не смог идентифицировать проблему. Я назову его «поздним пятном мозгового тумана», и, может быть, вы можете назвать это «легкими очками»?
Спасибо!
Какой версии VS вы используете? Это то, что мы обычно обрабатываем с помощью преобразований конфигурационных файлов: http://msdn.microsoft.com/en-us/library/dd465318.aspx –
VS2010, .Net 4.0 – McArthey