我的global.asax似乎不能启动。我有:
void Application_Error(object sender, EventArgs e)
{
// Code that runs when an unhandled error occurs
Server.Transfer("~/ExceptionFormView.aspx");
}
在我的web.config中,我没有任何像CustomErrors这样的东西。因为我希望所有的东西都由Global.asax处理并转移到ExceptionFormView.aspx。
它在本地工作得很好,但当我们部署到服务器时就不行了。有什么想法吗?
我需要PrecompiledApp.config吗?
发布于 2011-07-28 05:21:59
如果您的Web.config中没有customErrors
部分,则与具有mode="RemoteOnly"
的部分相同。此customError模式将使本地请求(从运行IIS的服务器发出)不使用自定义错误,并将按预期执行Application_Error()
方法。远程请求将使用customErrors,并且不执行上面提到的方法。
这就解释了为什么您在本地看到的行为与在您的服务器上看到的不同。通过将customErrors模式显式更改为on或Off,可以在任何环境中重现此行为。On将不执行Application_Error()
部分,而Off将执行。
<customErrors mode="On|Off|RemoteOnly" />
当然,这并不能解决您的问题,也就是您希望不管怎样都要执行该方法。我有一个关于another question的赏金,我们试图弄清楚为什么当customErrors模式打开时,Application_Error()
方法不会触发。几天后再回来检查一下,看看我们是否找到了解决方案。
发布于 2012-02-04 05:38:38
如果您使用的是IIS 7,请尝试设置:
Response.TrySkipIisCustomErrors = true;
发布于 2013-01-04 05:15:31
如果您以前将应用程序部署为预编译,但现在不是,那么是的,您需要删除PrecompiledApp.config目录中的Deployment.dll和您的bin。.NET将使用Deployment.dll中的全局代码,而不是您的更改。
https://stackoverflow.com/questions/3713939
复制相似问题