2010-08-19 2 views
4

Есть ли способ, с помощью которого я могу программно изменить значение веб-службы <endpoint address="..." />? В моем файле app.config, у меня есть следующий код:Программно редактировать конечную точку веб-службы

<system.serviceModel> 
    <bindings> 
     ... 
    </bindings> 
    <client> 
    <endpoint address="http://dev.remotedomain.com/WebServices/WebService.asmx" 
     binding="basicHttpBinding" bindingConfiguration="InboxServiceSoap" 
     contract="InboxServiceSoap" 
     name="InboxServiceSoap" /> 
    </client> 
</system.serviceModel> 

Я хочу, чтобы иметь возможность изменить

address="http://dev.remotedomain.com/WebServices/WebService.asmx" 

в

address="http://mymachine/WebServices/WebService.asmx" 

в коде. Возможно ли это прогаммически в .NET?

ответ

4

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

сервис Dim как новый XXXXXClient service.Endpoint.Address = Новый EndpointAddress (myUrl)

+0

Этот работает, но вызывает у меня подозрение. После добавления ссылки на службу WCF есть полдюжины файлов проекта, которые ссылаются на URL-адрес службы. Затем я перемещаю службу на другой URL-адрес, добавляю эту строку кода, и все работает нормально. Похоже, он не должен компилироваться ??? – nuander

+0

C#: service.Endpoint.Address = new EndpointAddress (myUrl); –

+0

@nuander Компиляция в порядке, просто строка отличается. До тех пор, пока разные URL-адреса соответствуют одному протоколу и формату, никаких проблем времени выполнения не возникает. –

Смежные вопросы