2010-01-26 73 views
3

我們繼承了一些使用第三方外部服務器上的Web服務的代碼。目前所有的參考文獻都直接在項目中完成,因此編譯到該位置等。我們遇到的這個問題是,存在具有不同URL的Web服務的測試和生產服務器。使Web服務引用可配置 - ASP.NET?

有一個簡單的手段,使網站更參考動態,以便它可以在一個web.config中定義,而不是需要改變的實際來源和重新編譯到服務器之間切換?

回答

4

你可以把網址中的web.config文件的appSettings部分:

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

然後讀值和web服務代理類的構造函數,並將其分配給Url屬性:

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

此外,如果您使用的是網絡部署項目,可以讓安裝程序根據你的目標環境下複製了正確的web.config文件(這將包含wsUrl根據目標環境不同的值) t(開發,舞臺,製作)。 – 2010-01-26 17:32:34

+0

或者把它放在machine.config中,那樣就不需要觸摸web.config。 – 2010-01-26 17:34:51

+1

在.NET 2.0中只有FYI有專門的章節,所以你不需要在代碼中使用自定義getters(來自ConfigManager)。 – GrayWizardx 2010-01-26 17:38:38