我是新來的是廣泛使用WCF和我與WCF的經驗是不是豐富的項目。我試圖追查在我的UI 10分鐘後呈現超時錯誤在等待一個長期運行的服務調用返回的問題。大致來說這裏是我的項目需要:WCF超時未兌現
[service A] <=> [service B] <=> [UI console]
,這裏是我所蒐集thusfar:serviceA和serviceB之間發生
超時,不serviceB和UI控制檯之間,因爲我實際上有兩個獨立的UI控制檯:一個是MMC管理單元和一個爲PowerShell管理單元,並且都表現出相同的10分鐘的超時。
我在這兩個serviceA和serviceB使用basicHttpBinding的端點;都有bindingConfigurations,指定30分鐘的sendTimeout和receiveTimeout,而不是10分鐘。
ReliableSession.InactivityTimeout默認爲10分鐘我已閱讀,但我不相信這些是ReliableSession,因此它不適用。
我檢測了serviceB for WCF tracing; ServiceTraceViewer表現出適當的活動到長時間運行的服務電話,再沒有什麼開始,截至及包括10分鐘超時後。
隨時挑戰我的任何斷言和/或讓我知道我能做些什麼來診斷這個問題。
2013年4月4日更新
下面是實際的錯誤消息:
請求信道超時而後 00等待答覆:09:59.9839984。將傳遞給調用的超時值增加到 請求或增加綁定上的SendTimeout值。分配給此操作的時間 可能是更長的 超時的一部分。
服務器堆棧跟蹤:在在 系統 System.ServiceModel.Channels.RequestChannel.Request(消息消息,時間跨度 超時)在 System.ServiceModel.Dispatcher.RequestChannelBinder.Request(消息 消息,時間跨度超時)。 ServiceModel.Channels.ServiceChannel.Call在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage 包括methodCall,ProxyOperationRuntime操作(字符串動作, 布爾單向,ProxyOperationRuntime操作,對象[]插件, 對象[]奏,時間跨度超時) )在 System.ServiceModel.Channels.ServiceChannelProxy.Invo科(即時聊天 消息)[0]時
異常重新拋出:在 在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(即時聊天 reqMsg,即時聊天retMsg)System.Runtime.Remoting.Proxies.RealProxy。 PrivateInvoke(MessageData & msgData,Int32 type) NextIT.ActiveAdministration.DataContracts.IActiveAdministration。PublishAgentSettings() 在...
而且內部異常:
HTTP請求到 '
http://localhost/MyAdminService/
' 已經超過了00:10:00的分配超時。分配給 此操作的時間可能是較長超時的一部分。在 System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(引發WebException 引發WebException,HttpWebRequest的請求,HttpAbortReason abortReason)
在 System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(時間跨度 超時)在 System.ServiceModel.Channels.RequestChannel.Request(消息消息,時間跨度 超時)
你是否也嘗試玩打開和關閉超時? – evgenyl
openTimeout和closeTimeout都設置爲1分鐘,所以它們不會是罪魁禍首;我對這些參數的看法似乎也支持這一事實。 –