2010-10-27 265 views
0

IIS中應用程序池的自動回收會在ASP.NET中殺死一個從QueueUserWorkItem調用的工作線程嗎?IIS應用程序池和多線程

由於這發生在設定的時間間隔,我得到隨機錯誤,它會出現,我想知道如果這兩個互相碰撞?

如果是這樣,我該如何運行一個異步任務,而不是被回收殺死?

回答

1

當ASP.NET回收時,ASP.NET進程中的任何長時間運行的任務都將停止。如果您需要運行後臺任務,則創建一個伴隨Windows服務來承載這些單獨的任務。

+0

我想不幸你是對的。謝謝 – bladefist 2010-10-27 21:38:39

0

這取決於您在應用程序池上設置了哪種回收設置。假設您已經在特定的時間[或者其他任何情況下]設置了回收利用,那麼當時就會產生一個新的工作流程,現有的工作流程將有90秒的時間完成它應該做的事情。在那90秒後,過程中出現的任何東西都將消失。

你說這是在設定的時間間隔發生的。你有沒有在IIS中設置基於時間的回收?

+0

是的。每隔2000分鐘左右就會經常發生這種情況。但是這些任務是一項服務的一部分,並且長期運行。 – bladefist 2010-10-27 21:37:44