WCF программно устанавливает адрес конечной точки: в коллекции элементов конфигурации не найдено элементов, соответствующих ключу - PullRequest
3 голосов
/ 03 декабря 2011

Я выполняю то, что я считал довольно простой задачей.У нас есть среда с несколькими серверами (DEV, TEST, PRODUCTION), и я хотел бы программно изменить конечную точку службы.Для этого я создаю новый EndPointAddress и создаю экземпляр клиента как:

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>

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

Спасибо!

1 Ответ

2 голосов
/ 03 декабря 2011

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

...