2011-05-13 63 views
1

我有一個項目,它提供了幾個對web服務的引用,併爲這些服務創建了兩個不同的配置文件(一個用於開發/階段,另一個用於生產)。 Web服務最初添加的任何URL工作正常,但另一個失敗。帶動態URL的Web服務

例如,如果我使用「添加web引用」按鈕在server1上添加服務,當我運行我的應用程序時,一切正常。如果我然後切換出配置文件,所以它試圖在server2上使用相同的服務,我的應用程序不再有效。每次調用.net使web服務返回null。如果我使用fiddler來查看服務器返回的XML,它們看起來完全相同。另外,無論何時Web服務被重建(即使沒有任何變化),我也必須刷新我的應用程序中的所有引用。不知道這是否相關。

什麼會導致這種情況,有什麼辦法解決它?

回答

0

我正在做一個有這個的大項目。

用戶使用自己的Web服務端點創建一個帳戶,所以我需要它們是動態的。

訣竅是在每次調用服務之前始終更改端點地址。一個Find服務

例如

FindClient wsFin = new FindClient(); 
wsFin.Endpoint.Address = 
    new System.ServiceModel.EndpointAddress(clientUrl.TrimEnd('/') + "/Find.svc"); 

就像一張紙條:爲WCF服務我寧願使用svcutil,而不是將基準創建一個代理,但asmx Web服務,我沒有補充參考:)

+0

我想我應該澄清,這不是一個WCF或asmx webservice,而是由Peoplesoft生成的普通的舊SOAP服務。 – jhunter 2011-05-13 21:13:23

+0

只要你有'wsdl',你可以使用'svcutil'生成代理,不管它是什麼,創建什麼語言! – balexandre 2011-05-13 21:19:49