我试图抓住我的Application_BeginRequest中发生的特定异常。
到目前为止,我一直无法捕获异常以查看出现了什么问题,但用户看到了500内部服务器错误。所有其他异常都记录在Elmah中,但在这种情况下,Elmah没有记录它。
try
{
if (!String.IsNullOrEmpty(Request.ServerVariables["HTTP_X_BLUECOAT_VIA"]))
{
string original = Request.QueryString.ToString();
HttpContext.Current.RewritePath(Request.Path + "?" + original.Replace(Server.UrlEncode("amp;"), "&"));
}
}
catch (Exception ex) {
}
如果我将catch更改为catch(Exception ex),则不会捕获异常并且仍然会发生错误。
如果我注释掉try块中的代码,那么页面加载没有错误,所以错误肯定发生在try块中,但不知何故抛出了一个无法使用try / catch块捕获的异常。 / p>
答案 0 :(得分:1)
如果其他尝试无效,请在catch块的正文中尝试Exception exception = Server.GetLastError();
。
您还可以使用同一Globals类中的Application_Error事件处理未捕获的异常。
protected void Application_Error(object sender, EventArgs e){
Exception exception = Server.GetLastError();
}