2009-10-06 232 views
5

我手上有一個真正的檸檬。我希望有同樣問題或知道如何解決這個問題的人可以指引我正確的方向。WCF災難性故障

的設置

我試圖創建使用ADO實體框架模型來檢索數據庫數據的WCF數據服務。我已經添加了WCF服務引用,並且一切似乎都很好。我有兩組數據服務調用。第一個檢索所有「用戶」列表並返回(該列表不包括任何相關數據(例如地址,聯繫人等)。第二個調用是當選擇「用戶」時,應用程序請求包括幾個相關的信息,比如給一個用戶ID地址,聯繫方式,信息等,這也似乎很好地工作。

檸檬

一些用戶選擇改變,即後。要求應用程序停止響應。

Crash error:

The request channel timed out while waiting for a reply after 00:00:59.9989999. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout.

我重新啓動調試過程,但應用程序將不會做任何的數據服務調用,直到後約一分鐘左右,VS 08顯示錯誤消息框:

Unable to process request from service. ' http://localhost:61768/ConsoleService.svc '. Catastrophic failure.

我GOOGLE了地獄,這個錯誤的和相關的問題,但沒有發現任何使用。

可能的解決方案

我發現了一些線索,以問題的根源。在客戶端的app.config中:

  1. maxReceivedMessageSize>設置爲更高的值,例如。 5242880.
  2. receiveTimeout>設置爲更高的值,例如。 00:30:00

我試過這些,但都是徒勞的。我懷疑有一個根本問題不能通過簡單地改變一些數字來解決。任何線索將不勝感激。

回答

6

我解決了它= P。

原因

WCF服務工作正常。數據服務電話是罪魁禍首。每次我打電話時,我都實例化了對數據服務的新引用,但從未關閉/處理服務引用。因此,在幾次呼叫之後,數據服務達到其最大連接並暫停。

解決方案

確保正確關閉的任何數據服務引用/處置。最佳做法是附上使用說明。

using(var dataService = new ServiceNS.ServiceClient()) 
{ 
    // Use service here   
} 
// The service will be disposed and connection freed. 
+0

是否與客戶的財產和使用異步服務引用的單例模式創建的問題??? – 2015-02-24 11:51:11

相關問題