2009-12-09 14 views
3

我有一個WPF應用程序使用WCF服務的服務引用。在更新服務時,我需要更新服務引用,所以我右鍵單擊它並點擊「更新服務參考」。WCF:更新服務引用給出了重複的配置條目

這樣做會導致客戶端項目的App.config文件中出現重複條目​​。

  • 它複製下的wsHttpBinding的結合 - 在添加名稱以後綴數目相等的條目:WSHttpBinding_ISomeService --> WSHttpBinding_ISomeService1
  • 並且它複製了端點定義綁定,使得每個wsHttpBinding有一個端點。除名稱外,這也是一個純粹的副本。

它爲什麼重複配置?難道不是應該更新名字嗎?我該如何讓它停止?

回答

3

您正在使用哪個版本的Visual Studio?這是一個已知的bug,已在VS2010中修復。退房this link

+0

啊,就是這樣。謝謝!我使用VS08 .. – stiank81 2009-12-28 08:56:48

1

這也發生在我們有幾次。

你需要刪除重複的,否則會在運行時崩潰。客戶端在配置文件中查找應該向Interface(WCF契約X)發送請求的位置,發現多個請求並崩潰。

+0

是的,我已經看到了..也可以設置綁定名稱,以便使用一個特定綁定,因此添加的新綁定將被忽略。但是我希望重複項不被創建 - 如果可能的話......你知道它爲什麼會發生嗎?任何方式來防止它?.. – stiank81 2009-12-10 21:32:51

1

解決方法之一是將服務代理(Web引用)放入其自己的DLL中,並從主項目中引用它。

當你做Update Referene時,它不會觸及你的web.config中的服務代理配置,並且作爲獎勵,如果你需要比較默認配置和你的配置,你將擁有一個使用最新serviceagent配置的項目實際上有在web.config中

也有,如果你有一個服務代理引用另一個將共享類型

MAIN DLL > ServiceAgent1 DLL > ServiceAgent2 DLL 

惠若ServiceAgent1和ServiceAgent2有共同的類型,你不會得到兩個生成重複類

2

code-zoop說這個已知的bug在VS2010中解決了,但我也在VS2010中得到它。

發生在我手動修改basicHttpBinding的在App.config中爲MaxReceivedMessageSize屬性的默認值(及其他)(按照這個帖子:WCF - How to Increase Message Size Quota

只是想我會提到,這種情況發生在VS2010以及。目前,我正在採取Shiraz Bhaiji的建議,只是刪除重複,這似乎是目前的工作。

+0

是的,我也有:http:// stackoverflow。COM/Q /24472分之6547554 – Larry 2011-07-02 16:54:51

+0

而且我:http://stackoverflow.com/questions/4625743/refreshing-service-references-updates-the-app-config – AtliB 2011-10-10 12:08:11