2014-08-28 6 views
5

Mit einem MVC 5-Projekt, das wir arbeiten, bekomme ich immer eine ThreadAbortException bei jedem Start der Anwendung (während der Debugger angeschlossen ist). Ich nahm an, dass es mit der Anwendung verwandt wurde, also erstellte ich ein leeres Projekt mit einem einzelnen Controller und einer leeren Ansicht.Warum bekomme ich eine ThreadAbortException auf asp.net Website-Start

HomeController.cs:

public class HomeController : Controller 
{ 
    // GET: Home 
    public ActionResult Index() 
    { 
     return View(); 
    } 
} 

Die Ausnahme noch so schnell erscheint wie die Webapp startet und der Debugger angeschlossen ist. Wie Sie sehen können, gibt es keinen Response.Redirect, der das verursachen könnte. Und es gibt keinen zusätzlichen Code in der Global.asax, der einen zusätzlichen Thread hochfahren könnte.

Global.asax.cs

public class MvcApplication : System.Web.HttpApplication 
{ 
    protected void Application_Start() 
    { 
     AreaRegistration.RegisterAllAreas(); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 
    } 
} 

Die Ausnahme tritt auf, wenn ich tun neu zu erstellen, starten Sie die Anwendung mit dem Debugger angeschlossen und genau so schnell wie die App nach oben begonnen hat. Es gibt keine Stacktrace und es nicht die App beenden, nur:

Eine Ausnahme vom Typ ‚System.Threading.ThreadAbortException‘ in mscorlib.dll aufgetreten und wurde nicht vor einer verwalteten/native Grenze behandelt

Ich verwende Visual Studio 2013 (Update 2) und die App läuft in IIS Express. Das Projekt ist auf .NET 4.5 ausgerichtet und verfügt über Razor-Ansichten.

Gibt es noch etwas, das ich ausprobieren kann?

+0

Scheint wie ein Konfigurationsproblem. Wahrscheinlich eine globale Konfiguration. Ich würde "Optionen/Debugging/Allgemein/Nur Code aktivieren" deaktivieren, alle Kontrollkästchen unter "Debug/Exceptions" markieren und "Native Code" unter "Projekteigenschaften/Web/Debugger" aktivieren. Dies kann Ihnen helfen, das Problem zu verstehen. – edokan

Antwort

8

stellte sich heraus, alles, was ich tun musste, war diese Einstellung deaktivieren:

Visual Studio Debugging setting

Für Interessenten, es ist unter Extras -> Optionen -> Debugging -> Allgemein -> oben auf der Seite.

Natürlich verhindert das jedoch nicht die Ausnahme. Daher möchte ich immer noch wissen, warum eine ThreadAbortException über eine verwaltete Grenze geworfen wird.

Verwandte Themen