Как я могу изменить адрес ссылки на сервис WCF? - PullRequest
4 голосов
/ 15 марта 2009

У меня есть приложение, которое используется внутри и использует WCF для связи между частями клиента и сервера, однако вскоре потребуется развертывание на сайтах с разными именами серверов. Службы WCF размещаются в качестве службы Windows с использованием привязки netTcp. На данный момент адреса служб указываются с помощью команды «Добавить ссылку на службу» в Visual Studio.

Можно ли сделать базовый адрес служб WCF предпочтением пользователя, а затем сделать ссылку на службу динамически, чтобы создать URL-адрес, когда это необходимо использовать.

Так, например, если у меня была служба с именем «CustomerService», можно ли двум отдельным пользователям в разных местах указывать адреса:

net-tcp://myserver1/

и

net-tcp://anotherserver/

и указание службы конвертирует их при необходимости в

net-tcp://myserver1/CustomerService

и

net-tcp://anotherserver/CustomerService?

Спасибо

Jim

Ответы [ 2 ]

6 голосов
/ 15 марта 2009

Когда вы создаете экземпляр клиентского прокси-класса (класса, производного от ClientBase и реализующего ваш контракт на обслуживание), вы можете указать удаленный адрес:

var client = new MyServiceClient(
    "endpointConfigurationName", 
    "net-tcp://myserver1/CustomerService");

Таким образом, вы можете переопределить значение адреса, хранящееся в вашем приложении / web.config

Другой вариант, если вы используете напрямую ChannelFactory класс:

var factory = new ChannelFactory<IMyServiceContract>(
    "endpointConfigurationName", 
    new EndpointAddress("net-tcp://myserver1/CustomerService"));
IMyServiceContract proxy = factory.CreateChannel();
0 голосов
/ 15 марта 2009

Разве вся эта информация не находится в конфигурации в app.config или web.config? Просто измените URL в конфигурации конечной точки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...