私はワーカーをアクティブにするために30分ごとに呼び出すページを持つWebアプリケーションを持っています。 Web.configファイルで例外:Response.Endの問題を処理していないときにスレッドが中止されました
<%@ 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>
、私はタイムアウトを防ぐために、このラインを持っていると私は労働者が完了知っている:約5-7回週には、私は、ASPXは多少のようになります
Thread was being aborted
例外を取得しますそれよりはるかに短い時間で。
<httpRuntime enableVersionHeader="false" executionTimeout="300" />
ご覧のとおり、ページにはバックグラウンドで実行されるワーカーが読み込まれ、呼び出されます。 Response.End issueまたはServer.Transferはありません。この問題は、この問題を扱う他のほとんどの記事が中心です。例外が発生しないようにするにはどうすればよいですか?
ありがとうございました。
IISプールリサイクルの設定は何ですか?アプリ全体がリサイクルされているのでしょうか? –
これは関連する可能性がありますhttp://stackoverflow.com/questions/7558145/unexpected-thread-abort-exception-using-tasks-why?答えの1つはMSDN:「バックグラウンドスレッドはアプリケーション終了前に待機していません」と引用しています。おそらく、IISはスレッドを強制終了するプロセスをリサイクルします。 –
@PawełŁukasik:このアプリケーションは(現在は)共有ホスティング環境でホストされています。 – frenchie