Global.asax中Application_Error页面跳转无效
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)'在出现未处理的错误时运行的代码
'If (Server.GetLastError().Message.Contains("HttpUnhandledException")) Then
' System.IO.File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + "abc.txt", "上传文件过大!")
'End If
Dim objErr As Exception = Server.GetLastError().GetBaseException()
Dim [error] As String = "发生异常页: " & Request.Url.ToString() & ""
[error] += "<br/>异常信息: " + objErr.Message & ""
Server.ClearError()
Application("error") = [error]
Response.Redirect("errorpage.aspx")
End Sub
可以扑捉到错误,但是就是最后的Response.Redirect("errorpage.aspx")跳转无效, 出错后在火狐下显示 连接被重置 ,载入页面时到服务器的连接被重置。
是什么原因 ?
--------------------编程问答-------------------- Response.End() --------------------编程问答-------------------- "载入页面时到服务器的连接被重置"
errorpage.aspx跟global同一目录吗?
直接打开errorpage.aspx是否有错导致循环重定向。
是否重写beginRequest了事件? --------------------编程问答--------------------
1L的可能是准确的0.0 --------------------编程问答-------------------- 谢楼上,加上了还是不行 --------------------编程问答--------------------
vb里没有判断类型的语句吗,竟然要这样判断类型... --------------------编程问答-------------------- errorpage.aspx跟global是在同一目录
errorpage目前是一个空页面,没有加载其他代码
Application_Error 加了断点看到只运行了一次,所以没有死循环的可能 --------------------编程问答--------------------
这些都是测试用的, 并且已经注释掉了, 现在的主要问题是不跳转 --------------------编程问答-------------------- Web.config 加入
<customErrors mode="On" defaultRedirect="GenericErrorPage.htm" > </customErrors>
或使用
void Application_Error(object sender, EventArgs e)
{
Exception objErr = Server.GetLastError().GetBaseException();
string error = "发生异常页: " + Request.Url.ToString() + "<br>";
error += "异常信息: " + objErr.Message + "<br>";
Server.ClearError();
Application["error"] = error;
Response.Redirect("ErrorPage.aspx");
}
//ErrorPage.aspx
protected void Page_Load(object sender, EventArgs e)
{
ErrorMessageLabel.Text = Application["error"].ToString();
}
FORM认证
--------------------编程问答-------------------- IE 可以跳转,为什么火狐就不能跳转呢, 你们的火狐可以跳转吗?
我用的火狐 5.0
--------------------编程问答-------------------- 本地测试成功,貌似火狐对Response.Redirect的兼容有问题。
改为 Response.Redirect("~/errorpage.aspx") 本地测试成功,
今天晚上挂网上试试
--------------------编程问答-------------------- 用
Response.Redirect("errorpage.aspx",true);或者
Server.Transfer("errorpage.aspx");
--------------------编程问答-------------------- 可为目标位置指定一个绝对 URL(例如 http://www.contoso.com/default.aspx)或相对 URL(例如 default.aspx),但有些浏览器可能不接受相对 URL。
最好使用firebug来查看http头
补充:.NET技术 , ASP.NET