Как изменить конечные точки службы WCF? - PullRequest
3 голосов
/ 10 февраля 2010

у меня более трех веб-сервисов, Один из них является главным сайтом, а другие - клиентскими сайтами.

В моем пользовательском интерфейсе доступно одно текстовое поле. В этом текстовом поле мне нужно указать адрес конечной точки назначения. из этого значения текстового поля мне нужно позвонить в службу поддержки клиентов.

Например:

Конечная точка клиента1 Имя службы:

                 http://localhost:1524/WebServiceService.svc" 

Имя конечной точки клиента 2:

К

Rajagopalk

                 http://localhost:8085/WebServiceService.svc" 

если я укажу "localhost: 1524" в текстовом поле, то Client1 вызовет службу, если я укажу "localhost: 8085" в текстовом поле, Client2 будет вызывать службу,

1 Ответ

6 голосов
/ 10 февраля 2010

Вы предоставляете свои услуги WCF в IIS? В этом случае адрес вашей службы определяется конфигурацией IIS и виртуальным каталогом, в котором находится файл * .svc вашей службы.

Таким образом, чтобы что-то изменить на сервере, вам необходимо проверить и изменить конфигурацию IIS.

Чтобы изменить на стороне клиента, есть файл web.config (для веб-сайтов ASP.NET) или (applicationName) .exe.config, в котором должно содержаться определение вашей конечной точки - измените адрес конечной точки:

<client> 
   <endpoint name="YourEndpointName"
       address="http://localhost:8085/WebServiceService.svc" 
       binding="......." bindingConfiguration="............."
       contract="..................." />
</client>

Необходимо указать полный адрес целевого веб-сервиса в атрибуте address= элемента конфигурации <endpoint>.

Вы можете определить несколько конечных точек для одной и той же службы и выбрать, какую из них использовать при создании клиентского прокси:

MyServiceProxy client = new MyServiceProxy("name of endpoint configuration");

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

ОБНОВЛЕНИЕ: Если вы хотите программно установить адрес своего клиента из кода, вам необходимо сделать следующее при создании прокси клиента:

// create custom endpoint address in code - based on input in the textbox
EndpointAddress epa = new EndpointAddress(new Uri(textbox.Text));

// instantiate your cilent proxy using that custom endpoint address 
// instead of what is defined in the config file
MyServiceProxy client = new MyServiceProxy("name of endpoint configuration", epa);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...