我的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吗?
解决方法
如果您的Web.config中没有customErrors部分,那么与使用mode =“RemoteOnly”的部分相同.此customError模式将使本地请求(由运行IIS的服务器生成)不使用自定义错误,并将按预期执行Application_Error()方法.远程请求将使用customErrors,而不是执行上述方法.
这就解释了为什么你在本地看到与您的服务器不同的行为.您可以通过将customErrors模式显式更改为On或Off来在任何环境中重现此行为.打开将不会执行Application_Error()部分.
<customErrors mode="On|Off|RemoteOnly" />
这当然不能解决你的问题,这是你想要执行的方法.我在another question有一个赏金,我们试图找出为什么当customErrors模式为On时Application_Error()方法不会触发.在几天内检查一下,看看我们是否找到了解决方案.