2013-08-07 48 views
0

我必須從新的C#類庫項目中調用Web服務。我的網絡服務還無法訪問(不同的地理位置和封閉的網絡直到發佈)。我確實有WSDL,並且在我的新類庫項目中添加了一個Web引用到WSDL。Web引用如何知道要使用的地址?

我的問題在於,我沒有看到我可以在哪裏配置WSDL所基於的服務地址。現在對WSDL存​​根進行很好的開發,但是當我將它發佈到其他開發中心時,他們需要能夠爲他們的服務設置正確的地址,以便我的服務調用起作用。

這裏有一個常見的做法嗎?即我可以添加的配置文件條目或其他內容?

+0

僅供參考,Web引用使用舊式ASMX Web服務技術。您應該使用服務參考。 ASMX是一項傳統技術,不應該用於新開發。 WCF應該用於Web服務客戶端和服務器的所有新開發。一個暗示:微軟已經在MSDN上退役了[ASMX Forum](http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/threads)。 –

+0

是的,我知道這個約翰,但是我在母公司的霸主發展經理生活在一個倒退的Tardis,我必須這樣做。 –

回答

0

如果您使用VS添加了Web引用,它會自動在.config文件中創建相應的設置。

您還可以在Settings.settings中查看/修改它。

N.B.默認情況下VS會設置這個設置來生成一個默認值(這是基於你用來添加引用的原始值,我相信它被埋在生成的代碼文件的某處)。您可以通過查看項目的屬性 - >設置,突出顯示WSDL設置,然後在屬性選項卡(停靠窗口)中設置GenerateDefaultValueInCode = False來禁用此功能。

部署完成後,可以通過修改相關的.config文件值來更新WSDL位置。


編輯:Web引用URL行爲屬性應該設置爲動態。

+0

一個例子會很有幫助 –

+0

類庫項目沒有配置文件,也沒有任何設置。如果有問題,我正在使用VS 2012。 –

+0

因此,添加一個app.config,再次添加Web引用,然後將添加到app.config的代碼複製到調用應用程序的配置文件中。 –

-1

尋找在你的app.config端點節點,改變URL針對不同的環境

<configuration> 
    <system.serviceModel> 
    <bindings>  
     ... 
    </bindings> 
    <client> 
     <endpoint address="#URL#" 
      binding="xxx" bindingConfiguration="xxx" 
      contract="xxx" name="xxx" /> 
+0

-1:不幸的是,他使用的是web引用 –

+0

他有wsdl文件,你仍然可以添加服務引用並將其指向本地文件,這將創建所需的一切 – Konstantin

+0

我同意這是他應該做的,但他沒有這樣做。他添加了一個Web引用。 –

相關問題