Как я могу изменить URL-адрес веб-службы без перекомпиляции?
-
05-09-2019 - |
Вопрос
У нас есть веб-приложение, которое взаимодействует с Netsuite через веб-службы Netsuite.Мы настраиваем веб-службу с помощью мастера добавления веб-ссылки VS 2005, который генерирует весь прокси-код.
В Netsuite есть учетные записи песочницы, которые позволяют проводить тестирование (другой URL-адрес веб-ссылки).В идеале мы хотим переключаться между живым сервисом и тестовым сервисом.Я надеюсь, что смогу просто изменить XML-файл, чтобы он указывал на нужный мне веб-сервис.Конфигурационный файл содержит
<Netsuite.Properties.Settings>
<setting name="Netsuite_com_netsuite_webservices_v21_NetSuiteService"
serializeAs="String">
<value>https://webservices.netsuite.com/services/NetSuitePort_2008_2</value>
</setting>
</Netsuite.Properties.Settings>
но URL-адрес веб-ссылки https://webservices.netsuite.com/wsdl/v2008_2_0/netsuite.wsdl
Кто-нибудь пробовал это и знает, как это сделать?
Решение
Невозможно протестировать в VS2005, но я знаю, что в 2008 году при развертывании веб-приложения он помещает URI службы в файл Settings.settings в каталоге свойств.Вы можете изменить URI, чтобы он указывал на тестовый экземпляр службы, и перезапустить приложение.
Другие советы
Вы можете поместить URL-адрес веб-службы в файл web.config (или AppSettings.config), а затем установить его во время выполнения.
wsProxy proxy = new wsProxy();
wsProxy.Url = ConfigurationManager.AppSettings.Get("WebserviceUrl");
wsProxy.DoSomething();
Это позволит вам изменить URL-адрес веб-службы без перекомпиляции приложения.
Я часто делаю это с приложениями интеграции NetSuite без необходимости перекомпиляции.Замените значение службы в файле конфигурации на
https://webservices.sandbox.netsuite.com/services/NetSuitePort_2008_2
если вы использовали это значение для производства:
h https://webservices.netsuite.com/services/NetSuitePort_2008_2