2013-08-23 35 views
0

我有一個項目使用WCF服務來做一些數據庫查詢,生成一個「Environment」對象(它由不同的數據庫類對象組成)並將它返回到一個「Workspace」對象中客戶端。它一直運行良好。WCF超時錯誤,代碼運行良好

我添加了另一個「數據庫」類型的服務與所有正確的合同和方法的更新。現在,當我調用該方法時,客戶端在1分鐘後超時。在調試時,大約需要3-5秒才能結束服務方法。然後,在客戶端我們看到超時問題,直到剩下的時間纔會發生。沒有錯誤/異常拋出。

請參閱以下內容:

從客戶端調用:

490 m_ScanWorkspace = m_Connection.ScanProxy.CreateEnvironments 

服務方法結束:

477 return tWorkspace; 
478 } 

它需要3-5秒鐘就到線478在服務中。 F10顯示它已完成。

直到1分鐘後,當客戶端中的行490顯示超時錯誤時,纔會發生任何事情。在調試時我可以在tWorkspace中看到一個有效的對象。

回答

0

首先,使用Diagnostics命名空間設置WCF tracing。只需使用該教程中的第一個示例,WCF就會轉儲出所有活動的日誌,您可以在日誌查看器中打開它。它會告訴你到底哪裏的通話失敗,這將幫助你找出問題所在。

WCF非常棒,但它給出的錯誤信息是神祕而且常常接近無用的。 1分鐘後超時並不一定意味着超時通常意味着什麼 - 即找不到服務器。這可能是其他問題。

超過可能會超出閾值導致響應對象不完整。這可能是數組長度,字符串內容長度,消息大小等等。你會發現一些這裏詳細:https://stackoverflow.com/a/480191/146077

祝你好運!