2012-01-30 118 views
0

上我有一個WSDL和XSD然後我生成從WSDL一個SVC客戶端代理WSDL,WSDL託管的Windows Server 2003(本地外域)上,地方上互聯網。 XSD也位於同一地點。我可以在網絡瀏覽器中看到它們,沒有問題。SVC客戶端代理和託管遠程服務器

然後我做了一個簡單的控制檯應用程序客戶端,當我運行客戶端時,我看到fiddler中有正確的soap響應,但在控制檯應用程序響應爲null,即SVC客戶端無法反序列化它。

我相信,XSD + WSDL是正確的,響應太(我看到提琴手)。

當我把WSDL和XSD的本地域服務器(內部網)上,這一切都很好,我看反應在應用程序中正確反序列化。

如果我比較小提琴手兩個的情況下,我沒有看到原始響應任何區別。

數點:我不是在IIS託管WCF服務。我有一個遠程運行的不同服務。讓我知道如果我澄清更多的事情。

謝謝。

編輯/更新:清理後。問題似乎不是IIS6或IIS7,它是遠程服務器創建模式位置的麻煩。在SVC代理客戶端MessagContract命名空間中,如果指向外部服務器,則在內部網服務器上會出現問題,它運行得很好。

例子:

[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] 
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] 
[System.ServiceModel.MessageContractAttribute(IsWrapped = false)] 
public partial class responseTypeOfMethod1 
{ 

[System.ServiceModel.MessageBodyMemberAttribute(Namespace = "http://testserver.xxxxx/yyyy.wsdl", Order = 0)] 
public RAT_type RAT; 
................ 
.... 
.. 

} 

如果http://testserver.xxxxx點到本地服務器,所有的罰款,如果指向一個互聯網服務器,響應爲空

+0

有人見過這樣的毛病嗎?我出於ideas.namspace網址,本地服務器的作品,外面的服務器沒有。 – SSA 2012-01-30 22:17:15

+1

您可以嘗試生成代理並在客戶端中使用該代理,並查看反序列化是否可以正常工作。確保刪除已添加的服務參考。 – Rajesh 2012-01-31 10:23:19

回答

1

有兩件事情可以在此處發生的事情:

  1. 響應未從遠程服務器返回
  2. 客戶端無法反序列化響應e

使用wireshark或其他網絡嗅探器來查看返回的響應。

如果問題是由於無法反序列化,它可能是在命名空間的差異。

+0

謝謝謝拉茲的回覆,我檢查了在提琴手中,迴應是存在的,也是在SVC日誌中,它是正確的迴應。這是一個反序列化問題,但只有當wsdl位於本地域之外時。在刪除服務器上時,架構位置有問題。當我將命名空間指向本地服務器時,一切正常。我正在清理OP。 – SSA 2012-01-30 19:14:22

1

問題已解決。當然,這是命名空間問題,需要很長時間才能找到服務器代碼中一個令人討厭的地方,這是我們內部使用的工具。感謝所有爲你的時間回覆的人。