WCF программно задал адрес конечной точки: в коллекции элементов конфигурации не было найдено ни одного элемента, соответствующего ключу


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

Я включил свое приложение.конфигурация ниже, но, как вы можете видеть, у меня есть определенная привязка.

<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 3

1 ответ:

Привязки в Сети.конфигурация приложения WCF и приложения.конфигурация клиентского приложения должна соответствовать