Как инициализировать клиента wcf с определенным URL-адресом? - PullRequest
4 голосов
/ 03 марта 2011

Я помню, с ASMX было простое решение:

 MyAsmxServiceClient serviceClient = 
     new MyAsmxServiceClient("http://myServiceLocation/myService.asmx");

Как можно добиться того же с WCF?

Ответы [ 2 ]

4 голосов
/ 03 марта 2011

Обычно это делается в app.config / web.config:

<system.serviceModel>
    <client>
        <endpoint
            address="http://myServiceLocation/myService.asmx"
            binding="basicHttpBinding"
            contract="IMyServiceContract" />
    </client>
</system.serviceModel>

или вы также можете сделать это программно , если хотите.

Обычно, когда вы генерируете прокси на стороне клиента, используя svcutil.exe , он также создает образец output.config файла, содержащего все, что вам нужно для настройки конфигурации.


UPDATE:

Вы также можете указать имена своих конечных точек:

<system.serviceModel>
    <client>
        <endpoint
            name="foo"
            address="http://foo.com/myService.asmx"
            binding="basicHttpBinding"
            contract="IMyServiceContract" />
        <endpoint
            name="bar"
            address="http://bar.com/myService.asmx"
            binding="basicHttpBinding"
            contract="IMyServiceContract" />
    </client>
</system.serviceModel>

и затем:

using (var client = new MyClientProxy("foo"))
{
    var result = client.SomeMethod();
}
4 голосов
/ 03 марта 2011

В тех же строках, привязка = тип привязки, который вы используете

BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("http://localhost:8888/MyService");        
MyServiceClient sv= new MyServiceClient(binding, address)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...