Нужна помощь по настройке прокси веб-службы динамически без сборки? - PullRequest
2 голосов
/ 13 апреля 2009

У меня развернуто веб-приложение, которое ссылается на внешний веб-сервис. Глядя на исходный код в Visual Studio, я вижу, что веб-ссылка была статически связана. В proxy reference.cs это жесткий код для URL. this.Url = "http://server/WebService/Service.asmx";

Я могу изменить URL. Но я бы хотел, чтобы прокси-сервер брал URL из файла web.config. Как улучшить прокси-код без использования Visual Studio, чтобы установить динамическое поведение URL? хотел бы получить несколько примеров кода в C #.

Ответы [ 3 ]

1 голос
/ 13 апреля 2009

В папке свойств проекта с помощью Settings.settings добавьте настройку URL-адреса веб-службы к одному из свойств.

Затем измените this.Url = Properties.Settings.YourWebServiceUrlName.

Это создаст конфигурацию в вашем файле web.config, которую вы можете изменить для каждого сервера. Я обычно устанавливаю настройки свойств в настройки своего производственного сервера, а затем изменяю файл web.config для своей локальной среды разработки.

1 голос
/ 14 апреля 2009

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

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

Если вы задаете поведение URL в Интернете ссылка на динамическое приложение получает URL во время выполнения от Элемент appSettings вашего файл конфигурации приложения.

Источник: MSDN, Веб-ссылки в Visual Studio

Другими словами, да, вы должны изменить его на динамический в Visual Studio (или другом редакторе), если вы хотите установить его из файла конфигурации.

1 голос
/ 13 апреля 2009

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

public Service1() {
    string urlSetting = System.Configuration.ConfigurationSettings.AppSettings["WebApplication1.localhost.Service1"];
    if ((urlSetting != null)) {
        this.Url = string.Concat(urlSetting, "");
    }
    else {
        this.Url = "http://localhost/WebService1/Service1.asmx";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...