2008-11-18 110 views
-1

我的WCF服務器和客戶端連接出現問題。WCF服務器/客戶端連接處理

如果我正常使用我的服務和客戶端,意味着我的客戶端通過正常操作(myclient.Close())連接並斷開連接,一切正常。但在服務器正在運行的情況下,我使用Visual Studio的「停止」按鈕退出我的客戶端應用程序,我的服務器和客戶端通信似乎搞亂了,服務器沒有正確清理連接,並且任何新的連接從我的客戶端是非常不穩定的,只有某些函數調用工作,直到一個函數將拋出一個例外:

System.ServiceModel.CommunicationException:接收HTTP響應http://localhost:8080/Design_Time_Addresses/Service_Beta1/Service時發生錯誤。這可能是由於服務端點綁定不使用HTTP協議。這也可能是由於HTTP請求上下文被服務器中止(可能是由於服務關閉)。查看服務器日誌獲取更多詳細信---> System.Net.WebException:底層連接已關閉:接收時發生意外錯誤。

之後還有很多其他的例外,我會免除你的閱讀。

如果我關閉服務器和客戶端並重新啓動兩者,我所有的通話都可以正常工作,直到我在Visual Studio中執行「停止」命令爲止。我如何強制服務器清理不正確的關閉連接?我知道在生產中「停止」按鈕已經消失,理論上應該沒有問題,但我不希望因客戶端崩潰或斷開連接而導致服務器連接問題。因爲不可避免會有這些情況。在您有20多個客戶端嘗試連接並獲取異常之前,最好先解決此問題。

謝謝

回答

-2

對不起,花了這麼長的時間來發布回覆。我的問題是我傳遞一個數據表到客戶端,但沒有給表創建一個名稱。見下文。

Dim dt As New DataTable() 'Passing just a blank un-named table to client gave errors. 
Dim dt As New DataTable("Table") 'Naming the table like so passes just fine.