2016-11-15 55 views
0

我有一個WCF服務。我從WPF應用程序調用此服務。TimeoutException當服務說它很好

大部分時間這些電話都沒有問題。但很少,它們會因超時異常而失敗。

我每天會爲這項服務做大約20,000個電話。每天大約有80次會因超時異常而失敗(超時設置爲1分鐘)。

但是,如果我檢查服務的日誌,它會報告一切正常。事實上它說速度非常快(不到一秒)。

這裏是服務時間的例子:

開始時間:2016-11-11 09:40:09.170
結束時間:2016-11-11 09:40:09.270

和超時有這個時間戳:

例外:2016-11-11 09:40:52.146

(我檢查過這些時間戳的生成是同步的。)

因此,呼叫在100毫秒內完成,但在43秒後,客戶說它超時。

我很困惑。我無法在受控環境中重現此錯誤。所以我留下來看日誌中的錯誤。

任何人都知道我可以從哪裏去?爲什麼我會得到一個超時異常,當服務說它做的一切都很好?


更新:

如果它是相關的,這裏是我用來調用我的服務代碼:

try 
{ 
    myResponse = await myService.Client.MyServiceCallAsync(serviceCallContract); 
} 
catch (Exception exception) 
{ 
    errorMessage = HandleFaults(exception, isPreview, orderedTests); 
    serviceCallFailed = true; 
    myResponse = null; 
} 

myService.Client從WSDL生成服務端類的實例。

+0

也許在你的WCF服務太多的http套接字正在等待關閉? – Hakunamatata

回答

0

我有同樣的問題。我設法解決它通過在服務器端添加該到我的配置文件:

<system.net> 
<connectionManagement> 
    <add address="*" maxconnection="500" /> 
</connectionManagement> 

的默認值是2的更多信息,你可以閱讀這個:scale up WCF service

相關問題