【问题标题】:Why am I getting a ThreadAbortException on asp.net website startup为什么我在 asp.net 网站启动时收到 ThreadAbortException
【发布时间】:2014-08-28 07:54:10
【问题描述】:

对于我们正在处理的 MVC 5 项目,每次应用程序启动时(在附加调试器时),我都会不断收到 ThreadAbortException。 我认为它与应用程序有关,所以我创建了一个带有单个控制器和一个空视图的空项目。

HomeController.cs:

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

只要 webapp 启动并附加调试器,异常仍然会弹出。 如您所见,没有 Response.Redirect 可能导致它。 Global.asax 中没有额外的代码可能会启动额外的线程。

Global.asax.cs

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

当我进行重建时发生异常,启动应用程序并附加调试器,并且恰好在应用程序启动后立即启动。没有堆栈跟踪,它不会终止应用程序,只是:

发生“System.Threading.ThreadAbortException”类型的异常 在 mscorlib.dll 中,并且在托管/本机边界之前未处理

我正在使用 Visual Studio 2013(更新 2)并且应用程序在 IIS Express 中运行。该项目针对 .NET 4.5 并具有 Razor 视图。

还有什么我可以尝试的吗?

【问题讨论】:

  • 似乎是配置问题。很可能是全局配置。我将取消选中“选项/调试/常规/仅启用我的代码”,选中“调试/异常”中的所有复选框并选中“项目属性/Web/调试器”下的“本机代码”。这可能帮助您理解问题。

标签: c# asp.net-mvc-5


【解决方案1】:

原来我所要做的就是禁用此设置:

对于那些感兴趣的人,它位于工具 -> 选项 -> 调试 -> 常规 -> 页面顶部。

当然,这并不能阻止异常的发生。所以我仍然想知道为什么 ThreadAbortException 会被抛出托管边界。

【讨论】:

    猜你喜欢
    • 2010-11-21
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    相关资源
    最近更新 更多