0
我有一個網頁應用程序,其中有一個頁面,我每30分鐘就會調用一次來激活一個工作程序。一週約5-7次,我得到一個Thread was being aborted
例外異常:線程在不處理Response.End問題時被中止
的ASPX頗像是:
<%@ Page Language="C#" AutoEventWireup="true" %>
<html>
<head runat="server">
<script runat="server">
public void Page_Load(object sender, EventArgs e)
{
System.Threading.Tasks.Task.Factory
.StartNew(() => { new MyApplicationWorker().RunApplicationWorker(); });
}
</script>
</head>
<body></body>
</html>
在Web.config,我這一行,以防止超時和我所知道的工人完成比那更少的時間。
<httpRuntime enableVersionHeader="false" executionTimeout="300" />
正如您所看到的,頁面加載並調用在後臺運行的worker。沒有Response.End問題或Server.Transfer這是處理此問題的大多數其他帖子所圍繞的內容。我能做些什麼來防止發生異常?
謝謝。
什麼是IIS池回收設置?也許整個應用程序正在回收? –
也許這可能是相關http://stackoverflow.com/questions/7558145/unexpected-thread-abort-exception-using-tasks-爲什麼?其中一個答案是引號MSDN:後臺線程在應用程序終止之前不會等待,也許IIS只是回收終止線程的進程。 –
@PawełŁukasik:該應用程序託管(現在)在共享主機環境。 – frenchie