2011-12-02 11 views
3

Я выполняю то, что, по моему мнению, было довольно простой задачей. У нас есть среда с несколькими серверами (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> 

Извините, если это простой вопрос, но я не смог идентифицировать проблему. Я назову его «поздним пятном мозгового тумана», и, может быть, вы можете назвать это «легкими очками»?

Спасибо!

+0

Какой версии VS вы используете? Это то, что мы обычно обрабатываем с помощью преобразований конфигурационных файлов: http://msdn.microsoft.com/en-us/library/dd465318.aspx –

+0

VS2010, .Net 4.0 – McArthey

ответ

2

привязки в Web.config приложения WCF и app.config клиентского приложения должны соответствовать

+0

app.config, который я опубликовал, с клиентской стороны и был создан через svcutil.exe. Странные они недостаточно подходят для поддержки. Достаточно ли скопировать раздел службы из web.config и поместить его в app.config? – McArthey

+1

Не совсем, привязки между ними совпадают, за исключением некоторых настроек, которые установлены в каждой конфигурации. Это довольно подробная статья о привязках и о том, как они работают в конфигурационных файлах http://msdn.microsoft.com/en-us/magazine/cc163394.aspx – msmucker0527