2009-11-16 231 views
0

我有一個Web應用程序,它從Web服務中獲取信息。它在我們的開發環境中工作正常。連接到Web服務失敗

現在我想要得到它在客戶的環境中工作,而不是,這裏的Web服務是由第三方。問題在於,應用程序第一次嘗試獲取無法連接到Web服務的信息。當它幾秒後再次嘗試時,它可以正常工作。如果我等了幾個小時再試一次,問題再次出現。

我有一個很難相信這是一個編程錯誤,作爲我們的客戶和Web服務認爲的製造商。我認爲它與網絡中的一個IIS或某個安全性有關。但是我沒有太多的工作要做,也不能在我們的開發環境中重現錯誤。

回答

0

錯誤是來自第三方的網絡服務。我們需要開發的測試存根是用C#編寫的,只返回了虛擬答案。客戶環境中的Web服務實際上連接到COM對象。經過長時間等待後,與COM對象的第一次通信花了差不多一分鐘。

適合我,第三方開發人員離開了源代碼,客戶服務器上...

0

當您嘗試第一次連接時,它是否失敗並伴有timeOutException ?.如果是的話,這可能是對服務

0

的啓動時間,結果我有一個規則:「總是假定它是你的錯,直到你能證明,否則」。 20多年後,我仍然堅持下去。

所以有因此兩種情況:

  1. 的代碼被打破
  2. 沒有與現場環境

既然你要證明這個問題是一個具體問題(2 )您需要使用除您的應用程序以外的其他應用程序來測試來自現場環境的服務調用。究竟什麼取決於網絡服務的性質,但我們發現SoapUI是有幫助的。

另一件不清楚的事情是,您是否正在從您的開發環境調用實時服務 - 如果在測試中,您沒有與服務的同一實例進行通信,那麼這是一個額外的變量,需要(我明白你並不總是可以選擇)。

最後,@Krishna是對的 - 遠程服務可能會出現問題(因此我的問題是您是否正在與您的開發環境中的同一服務交談)並且 - 儘管如此 - 解決方案在第一種情況下可能只是想找到一種方法來允許這個!