Global.asax Application_Start在调试时未触发,但在生产中触发

时间:2016-09-19 04:27:31

标签: c# asp.net visual-studio webforms

我使用Application_start在asp.net webforms应用程序中设置路由。它工作正常,然后我在一台新机器上克隆了回购,它停止了工作。事件永远不会触发,路线永远不会被设定。所以我最终遇到了很多404错误。

我甚至在事件中抛出异常,以确保它没有被触发,并且从未抛出异常。

但是,它在我发布应用程序时有效。

1 个答案:

答案 0 :(得分:2)

在从Visual Studio启动应用程序之前,我建议您尝试手动停止IISExpress

或者只是转到网页项目属性的网页部分,然后选中底部的'启用编辑并继续'

  

当您选择编辑并继续时,我们将回收ASP.Net Web   每次调试运行时的服务器进程(Edit&   继续工作的功能)...这种方式,虽然你会看到非常   您的性能边缘性能下降,您仍然可以调试   你的Application_Start()方法......

这可以帮助您了解您遇到此问题的原因:

  

这背后的原因是我们不会杀死ASP.Net Web服务器   每次调试运行后的进程,因此Application_Start()是   每次都不会被解雇。我们这样做是有充分理由的......开始吧   ASP.Net Web Server进程是一项昂贵的任务,并且在大多数情况下都是如此   每次调试后回收此过程的场景都会产生负面影响   影响你的表现......如果你不想调试你的   那么Application_Start()方法可能你不需要了   进程重启并在大部分时间保存性能......

详情请见以下文章:

https://blogs.msdn.microsoft.com/webdev/2007/12/13/workaround-debugging-global-aspx-cs-application_start-with-asp-net-web-server-within-visual-studio/