2010-01-26 5 views
3

Мы унаследовали некоторый код, который использует веб-службу на внешнем сервере от третьего лица. В настоящее время все ссылки выполняются непосредственно в проекте и, таким образом, скомпилированы в это место и т. Д. Эта проблема заключается в том, что для веб-службы есть тестовый и производственный сервер с разными URL-адресами.Создание справки по настройке веб-службы - ASP.NET?

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

ответ

4

Вы можете поместить URL в appSettings части web.config файла:

<appSettings> 
    <add key="wsUrl" value="http://example.com/staging.asmx" /> 
</appSettings> 

А затем прочитать значение и в конструкторе класса вебсервис прокси и назначить его Url собственности:

public SomeProxy() 
{ 
    Url = ConfigurationManager.AppSettings["wsUrl"]; 
} 
+0

Кроме того, если вы используете проект веб-развертывания, вы можете установить установщиком правильный файл web.config (который будет содержать разные значения для wsUrl в зависимости от целевой среды) на основе вашей целевой среды t (dev, stage, production). –

+0

Или поместите его в файл machine.config, поэтому не нужно касаться web.config. –

+1

Просто FYI в .NET 2.0 есть разделы для этого специально, и поэтому вам не нужно использовать пользовательские getters (из ConfigManager) в коде. – GrayWizardx

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