2010-05-31 65 views
8

WCF配置中是否有某些內容定義了在服務端執行請求的超時?例如。 WCF服務將在一段時間後停止執行請求。我有一項服務,根據客戶意見做出一些工作。在某些情況下,此類呼叫可能需要很長時間。我想在服務端限制這些請求的執行時間,而不是使用SendTimeout的客戶端。我知道OperationTimeout屬性,但它不會中止服務請求,它只是告訴客戶端請求已超時。如何限制WCF服務的請求執行時間?

回答

16

一般而言,沒有什麼會完全執行此操作。不幸的是,運行時不能很好地強制執行,而沒有可能將狀態搞亂(幾乎唯一的選擇是中止正在運行的線程,並且具有一系列不良後果)。因此,基本上,如果這是你想積極實施的事情,那麼設計你的服務來處理這個問題好得多,這樣你的操作執行就有了安全的中斷點,如果最大執行時間可以終止操作已經超過。

雖然它的工作量很多,但從長遠來看,您可能會對它更滿意。

+0

看起來現在沒有其他解決方案。謝謝 – Kamarey 2010-06-02 11:48:21

+1

+1謝謝你。這些信息在許多地方都不可用。 MS似乎掩蓋了wcf的整個超時機制。 – 2012-07-20 10:21:30