2010-02-06 154 views
1

我在web服務中存在單聲道問題。 我有一個webservice處理龐大的數據庫操作。我在「appconfigtings」標籤下的「webconfig」文件中給出了「Timeout = 1024」。線程異常異常

當2分鐘後調用web服務,我得到「線程異常終止」。

請幫我解決這個問題

問候 庫馬蘭

回答

1

這是不好的做法,將長操作(在你的情況下,它是超過2分鐘),以同步Web服務方法。通常,Web服務只是在後端服務器或至少另一個線程上啓動長時間方法。客戶可以定期檢查操作是否完成(所謂的看門狗模式)。或者審查使用單向方法的可能性 - 當客戶完全不關心結果時。

順便說一句,注意,即使成功的Web請求操作必須ThreadAbort例外完成 - 因爲HttpRequest的含有昇華在請求處理

2

結束你要設置的請求超時也。這是默認的30或60秒。

system.web部分,將是這樣的:

<httpRuntime executionTimeout="200"/> 

這將影響到所有的頁面,所以也許你希望把頁面在一個單獨的文件夾,這樣你可以有一個本地的web.config文件爲此設置。

1

檢查innerexception。這應該有一些HttpApplication.CancelModelException,應該包含一個標誌,指示是否超時。無論哪種方式,如果你確實有內隱感覺,它可能會提供更多的洞察力。

此外,請確保您的方法設置爲async