2012-09-27 39 views
3

我很努力如何將網址配置爲Web引用。Web引用配置問題

這是這種情況。我有: 舊的asp.net web服務< -----編譯爲dll的c#項目< -----引用dll的網站(該c#項目並不曾在那裏,但我重構了所有代碼一個單獨的項目)

所以網站代碼調用c#項目的代碼來獲取結果,然後調用web服務。

當添加在我進入web服務的URL位置(http://192.168.10.1/TestServices.asmx?wsdl的C#項目的Web引用。這隨後產生包含web服務的URL的app.config文件。

如果我設置Web引用到靜態比配置不應該使用,這是工作。現在,如果我設置Web引用動態,配置應該使用,但由於這是一個項目被編譯爲一個DLL,並且該網站沒有app.config ,而是我將配置從app.config設置到我的web.config appSettings節點,並將網址更改爲另一個Web服務(http://192.168.10.2/TestServices.asmx

Th e網站仍然從舊網址獲得結果,在將網址引用添加到c#項目中時,網址引用被指向該網址,因此看起來像配置設置未被使用,而URL行爲設置爲動態。

我在這裏錯過了一些微不足道的東西嗎?

這是在app.config內容:

<applicationSettings> 
    <XXXX.Properties.Settings> 
     <setting name="XXXX_TestServices_TestServices" serializeAs="String"> 
     <value>http://192.168.10.1/TestServices.asmx</value> 
     </setting> 
    </XXXX.Properties.Settings> 
    </applicationSettings> 

這就是我把我的web.config:

<appSettings> 
    <add key="XXXX_TestServices_TestServices" value="http://192.168.10.2/TestServices.asmx" /> 
</appSettings> 

所以,現在它總是有趣和翔實/教育時在問題的輸入和雙重檢查和搜索相關問題期間,您最終自己解決問題。無論如何我都會發布答案,因爲我沒有在一個地方找到確切的答案,而是通過結合其他兩個問題和博客文章。

+0

有你還在使用「添加Web引用」,而不是「添加服務引用」的一些原因? –

+0

可能重複的[是否有可能在運行時更改WebReference的屬性?](http://stackoverflow.com/questions/211510/is-it-possible-to-change-the-properties-of- a-web-reference-in-run-time) –

回答

5

有些資源提到您需要創建設置並需要更改代碼中Web服務代理對象的url屬性。這不是必須的,你只需要以正確的方式編輯你的網頁配置。

url不會像web.config中的appSettings部分那樣直接從網站引用Web服務。

相反,您需要從您的dll項目中生成的app.config中複製整個配置代碼,其中包括定義用於設置正確url的applicationSettings節點的sectiongroup配置。

對於包含在web.config中以下配置代碼這個具體的例子:

<configuration> 
    <configSections> 
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <section name="XXXX.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 
... 
</configuration> 

<applicationSettings> 
    <XXXX.Properties.Settings> 
     <setting name="XXXX_TestServices_TestServices" serializeAs="String"> 
     <value>http://192.168.10.2/TestServices.asmx</value> 
     </setting> 
    </XXXX.Properties.Settings> 
</applicationSettings> 
+0

你是說你在''結束標記之後放置''位嗎?那會給你兩個根元素。 – MrBoJangles