2014-08-28 12 views
5

Przy projekcie MVC 5, nad którym pracujemy, ciągle otrzymuję wyjątek ThreadAbortException przy każdym uruchomieniu aplikacji (podczas gdy debugger jest dołączony). Zakładam, że był on związany z aplikacją, więc utworzyłem pusty projekt z pojedynczym kontrolerem i pustym widokiem.Dlaczego otrzymuję wyjątek ThreadAbortException na stronie startowej asp.net

HomeController.cs:

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

Wyjątkiem nadal wyskakuje jak tylko zaczyna się webapp i debugger jest dołączony. Jak widać, nie ma opcji Response.Redirect, która mogłaby spowodować. I nie ma dodatkowego kodu w pliku Global.asax, który mógłby uruchomić dodatkowy wątek.

Global.asax.cs

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

Wyjątek występuje wtedy, gdy robię odbudować, uruchomić aplikację za pomocą debuggera załączonym i dokładnie, jak tylko aplikacja została uruchomiona. Nie ma StackTrace i nie zakończyć aplikację, wystarczy:

Wyjątek typu „” wystąpił System.Threading.ThreadAbortException w pliku mscorlib.dll i nie był obsługiwany przed zarządzanym/rodzimej granicy

Używam Visual Studio 2013 (Aktualizacja 2), a aplikacja działa w IIS Express. Projekt jest skierowany na platformę .NET 4.5 i ma widoki Razor.

Czy mogę jeszcze spróbować czegoś innego?

+0

Wydaje się, że wystąpił problem z konfiguracją. Najprawdopodobniej globalna konfiguracja. Odblokuję "Opcje/debugowanie/Ogólne/Włącz tylko mój kod", zaznacz wszystkie pola wyboru w "Debug/Wyjątki" i zaznacz "Kod macierzysty" w "Właściwości projektu/Web/Debuggery". To * może * pomóc w zrozumieniu problemu. – edokan

Odpowiedz

8

Okazuje się, że wszystko, co musiałem zrobić, to wyłączyć to ustawienie:

Visual Studio Debugging setting

Dla zainteresowanych, to w menu Narzędzia -> Opcje -> Debugging -> Ogólne -> góry strony.

Oczywiście nie zapobiega to jednak wyjątkowi. Nadal chciałbym wiedzieć, dlaczego wyjątek ThreadAbortException jest rzucany przez zarządzaną granicę.

Powiązane problemy