2012-03-02 18 views
0

我試着在我們的WCF(IIS7/TCP/WAS)應用程序服務上設置sendTimeout,receiveTimeout和httpRuntim executionTimeout。WCF timout中止當前操作?

超時工作,但操作將繼續運行,我們需要的是讓操作中止。

在這種情況下,可能會出現死鎖或類似情況,爲儘快解決此問題,如果我們可以放棄長時間運行的操作,那麼這些操作鎖定來自其他客戶端的呼叫會很好,這就是爲什麼它需要被中止。

+0

你正在捕捉異常嗎?因爲我確信如果連接超時,某些事情會拋出異常。 – 2012-03-02 08:31:16

+0

我試圖在幾個地方休息,並且在施法時間沒有任何螺紋插入或服務端引發的任何異常。 – Banshee 2012-03-02 09:22:30

回答

0

在「後臺」線程上運行作業或使用其他一些機制,並根據某個「停止」標誌忽略來自網絡調用的結果。

我已經使用了一個小工作系統,基於GUID的工作單,如果作業停止時根本沒有提出「完成」事件。

中止實際的網絡通話可能不安全。你可能會在一些破壞驅動程序/操作系統/任何代碼的關鍵網絡代碼路徑中殺死一個函數。

+0

我不跟着你,說一個會話得到了一個當前正在等待鎖定的webmethod。現在我需要討論這個會話並中止正在運行的線程,這可能嗎? – Banshee 2012-03-02 09:38:42

+0

是的,這是可能的,但不是你想要的。簡單地忽略webmethod的結果並繼續運行新的操作。 您可以在後臺線程上運行webmethod並中止它。但是,當你放棄它時,誰會說webmethod正在做什麼。 – CodingBarfield 2012-03-02 09:49:40

+0

他怎麼知道什麼時候放棄它? – 2012-03-16 18:39:31