2012-04-23 85 views
3

隨機有這個問題i和i能夠添加/使用WCFServiceClient刪除/更新,然後我得到的錯誤和它隨機發生......WCF服務,請求或增加的SendTimeout值的綁定

下面

是,我使用的客戶端代碼......

using(WCFServiceClient client = new WCFServiceClient()) 
{ 
    //More codes here 
    Employee emp = new Employee() 
    emp = client.GetEmployeeDataById(123); //<<<ERROR  
} 

我增加超時到兩分鐘,但仍然是相同的:

<binding name="WSHttpBinding_IEmployeeService" maxReceivedMessageSize="200000" sendTimeout="00:02:00" > 

//錯誤:

請求通道在00:00:59.9990000之後等待回覆時超時。增加傳遞給請求調用的超時值或增加綁定上的SendTimeout值。分配給此操作的時間可能是超時時間的一部分。

有幫助嗎?我看過很多帖子,但沒有看到任何修復或任何指導。

+0

當您提出請求時,您是否嘗試過調試實際服務?還要確保在客戶端上製作的服務器上發生的超時增加。 – stephenl 2012-04-23 23:18:11

+0

我的服務器服務沒有任何app.config,我需要創建嗎? – 2012-04-24 00:16:29

+0

客戶端連接的服務定義客戶端與之交互的合約和綁定參數。如果您的服務器將超時設置爲x,並且您的客戶端將其設置爲「原因」,則服務器設置將爲使用的設置。 – stephenl 2012-04-25 01:33:55

回答

1

能解決我的問題。

與 「用」 的調用語句結果處置using語句 http://msdn.microsoft.com/en-us/library/aa355056.aspx

的C#避免問題發生的()。這與Close()相同,當發生網絡錯誤時可能會引發異常。由於對Dispose()的調用隱式發生在「using」塊的左括號處,所以這些異常源可能會被編寫代碼和閱讀代碼的人忽略。這代表了應用程序錯誤的潛在來源。

0

您可以嘗試顯式綁定選擇消除的情況下,你可能會讀這個鏈接後拿起默認(簡化配置)結合

new WCFServiceClient ("WSHttpBinding_IEmployeeService") 
+0

我試着用顯式綁定,因爲你有建議,但仍然是相同的,我瀏覽我的應用程序幾分鐘後出現錯誤。 – 2012-04-24 00:21:21

+0

你能解釋一下「你瀏覽我的應用程序」是什麼意思嗎? – 2012-04-24 01:16:33

+0

以及我的意思是,我正在使用提供一堆方法,如保存,獲取,刪除等的服務......在我的客戶端應用程序中,我正在使用這些服務,並且在幾分鐘的瀏覽後,該應用程序(這是消耗的服務),然後我得到的錯誤,我張貼在我的原始文章。我希望讓它有意義。 – 2012-04-24 01:52:38

0

我不知道你到達的數據有多大,但receiveTimeout呢?

+0

我正在用少於10個字符進行測試 – 2012-04-25 15:54:49