2010-04-23 114 views
1

我有一個ClickOnce應用程序調用服務器上的WebServices(標準ASMX風格,而不是WCF)。偶爾,用戶收到此錯誤:調用WebServices時偶爾出現錯誤

System.Reflection.TargetInvocationException: An exception occurred during the operation, making the result invalid. Check InnerException for exception details.

System.Net.WebException: Unable to connect to the remote server System.Net.Sockets.SocketException: A connect request was made on an already connected socket

出現這種情況相當罕見(每天抽出近百萬通話10-20倍),但仍然不夠,用戶偶爾抱怨。

該服務器是帶IIS的標準Windows 2003 R2。

這裏有什麼問題?

+0

沒有看到代碼OT配置很難查明,但它似乎已經執行做一個呼叫的信道在HTTP調用。 發生此錯誤時,您也可以實施重試邏輯,以便用戶不受其影響。您也可以嘗試在Web服務調用中將KeepAlive屬性設置爲false。 – 2010-04-23 19:58:42

+0

這是什麼內在的異常?在序列化/反序列化過程中,dll版本中可能存在一些衝突? – hoodoos 2010-04-24 19:38:01

回答

0

你可能想檢查你是否在你的調用中實現了一個Using語句,那裏的客戶端只處理了6個線程,這可能會導致webservice拒絕這個調用。

using (var proxy = new ApplicationWebService.ApplicationWebService()) 
{ 
    proxy.Method(); 
} 

如果這不起作用,您可能需要考慮通過aync調用webservice。

乾杯