.ASP.NET WebForms .NET 4.0 コードを実行している Windows Server 2008 R2 IIS 7 インスタンスがあります。ポストバックには、実行時間の長いプロセスを実行するスレッド スポーンがあります。
以下のコードは IIS7 では動作しません。Cassini の下でローカルに、および利用可能な別の Windows Server 2003 IIS6 インスタンスで正常に動作します。
var t = Task.Factory.StartNew(() => ProcessWorkItem(wid));
var ex = t.Exception;
Log(string.Format("Spawned background task to wid={5}: id={1} status={4} isfaulted={3} iscompleted={2} ex={0}",
ex == null ? "no exception" : ex.ToString(),
t.Id,
t.IsCompleted,
t.IsFaulted,
t.Status,
wid));
これにより、サーバーに関係なく、「例外なし」および「isfaulted=false」および「iscompleted=true」が記録されます。
ProcessWorkItem
ただし、 IIS6 または Cassini ローカル開発サーバーでは問題なくヒットしますが、IIS7 ではヒットしない .log ファイル内にもログ ステートメントがあります。
それはなぜでしょうか?