Как изменить местоположение ссылки на службу во время выполнения? - PullRequest
1 голос
/ 08 марта 2011

У меня есть клиентское приложение VB .NET 3.5 WPF, которое в основном представляет собой тестовый комплект - оно вызывает веб-сервис (классический веб-сервис .NET 2.0, а не приложение WCF), который находится в том же решении. проверить правильность работы некоторых методов службы.

Я добавил службу в проект клиента в VS в качестве ссылки на службу и установил решение для обоих проектов, чтобы они были запускаемыми проектами. Это прекрасно работает, когда я отлаживаю и запускаю все это локально. Но проблема в том, что мне нужно, чтобы пользователь мог вводить URL-адрес во время выполнения, и чтобы тестовый комплект проверял службу по указанному URL-адресу, а не в том, где работает VS. Это делается для того, чтобы тестовая программа могла проверять уже развернутые копии веб-службы. Проблема в том, что в справочнике службы нет никакого способа сделать URL-адрес динамическим и настраиваемым из кода VB. Возможно ли это сделать?

Ответы [ 2 ]

1 голос
/ 08 марта 2011

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

Я полагаю, что вы можете использовать другой конструктор служебной ссылки (служебный прокси-сервер), который принимает в качестве параметра URL-адрес.

например. YourServiceProxy ("Целевой URL")

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

0 голосов
/ 06 мая 2013

Для динамического изменения URL-адреса веб-службы во время выполнения:В файле config.sys (или app.config) найдите тег XML,Скопируйте весь тег конечной точки и его содержимое и вставьте копию чуть ниже оригинала в тот же файл.Измените атрибут имени новой копии на новое имя (скажем, для этого примера новое имя «NewName»);измените атрибут адреса на новый URL.В коде создайте ссылку на службу, как и раньше, но в операторе «new» используйте один параметр для конструктора класса, новое имя:ServiceReference1.MyClient cl = new ServiceReference1.MyClient ("NewName");Затем вызовите методы ServiceReferences, как и прежде:String sRes = cl.MyMethod (myParm);Это также работает в Visual Basic, просто используйте синтаксис VB в коде.

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