簡體   English   中英

ThreadAbortException的更多信息

[英]More info from ThreadAbortException

我們有一個由IIS托管的WCF服務,該服務接收大量要處理的數據。 該服務將啟動多個工作線程,然后返回以離開工作線程以完成工作(這可能需要一個小時)。 如果WCF服務處於空閑狀態,則IIS會回收足夠多的應用程序池以中止工作線程。 通過使輔助線程偶爾調用虛擬服務來保持應用程序池保持活動狀態,可以解決此問題。 如果您認為整個設置不是一個好主意,我完全同意(不是我的代碼)。 因此,無需對此發表評論。

問題是我們仍然偶爾會出現ThreadAbortException。 有什么方法可以獲取有關發起線程中斷的原因的信息嗎? 我知道這不是我們的代碼。

IIS日志證明了答案。 AFAIK,如果加載了新的二進制文件,則IIS等待所有服務調用完成(並且不接受任何新調用),然后回收應用程序池。 但是,IIs不了解在該服務之后運行的后台線程,因此IIs認為可以免費回收應用程序池。 在某些情況下,我們一直在后台線程仍在運行時上傳新版本。 無論如何,這是一個非常糟糕的架構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM