Bitte zum Absturz nicht gesetzt doppelte Flagge auf diesem qustion - es geht nicht darum, „warum Thread auftritt“, es geht darum, „warum w3wp.exe Prozess endet nach ThreadAbortException ".Thread.Abort in ASP.NET app Ursachen w3wp.exe
Lassen Sie uns sagen, dass wir eine einfache Web-Anwendung mit folgenden Codebeispiel haben:
protected void Page_Load(object sender, EventArgs e)
{
Response.Redirect("http://google.com");
}
, die durch Tatsache bedeutet, wie etwas (siehe Is Response.End() considered harmful?):
protected void Page_Load(object sender, EventArgs e)
{
...response write some data...
System.Threading.Thread.CurrentThread.Abort();
}
Auf meinem Rechner (Windows 10 Pro + IIS) Dieser Code führt zur Beendigung des IIS-Pool-Prozesses mit dem Fehlercode 0x0 (Umleitung führt nicht durch). Auf anderen Rechnern (die NICHT Windows 10 sind) erzeugt dieser Code nur eine ThreadAborted-Exception, aber der Prozess läuft weiter (Redirect führt aus).
Kann jemand dieses Beispiel überprüfen und erklären, was vor sich geht?
UPDATE Hier einige Windows-Ereignisprotokolle zu diesem Problem.
log # 1
Eine nicht behandelte Ausnahme aufgetreten ist, und der Prozess beendet wurde.
Anwendungs-ID:/LM/W3SVC/1/ROOT/AS
Prozess-ID: 6700
Ausnahme: System.Threading.ThreadAbortException
Nachricht: Thread wurde abgebrochen.
Stacktrace: bei System.Web.HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkerRequest wr, Httpcontext context) bei System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper (IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) bei System.Web.Hosting.PipelineRuntime.ProcessRequestNotification (IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
log # 2
Faulting application name: w3wp.exe, version: 10.0.10240.16384, time stamp: 0x559f3dad
Faulting module name: KERNELBASE.dll, version: 10.0.10240.16384, time stamp: 0x559f3b2a
Exception code: 0xe0434352
Fault offset: 0x000b3e28
Faulting process id: 0x1a2c
Faulting application start time: 0x01d0e4b1b3ed01cb
Faulting application path: C:\WINDOWS\SysWOW64\inetsrv\w3wp.exe
Faulting module path: C:\WINDOWS\SYSTEM32\KERNELBASE.dll
Report Id: 23b5298d-3b36-49c7-a294-de9c864b703f
Faulting package full name:
Faulting package-relative application ID:
Welches Verhalten versuchen Sie mithilfe Thread.Abort() hier zu erreichen? – Nanhydrin
Welche .net-Version verwenden Sie? – Peter
@peer, .Net v4.0.30319 –