通过 url 传递长查询字符串显示找不到页面错误 (404)
Passing long querystrings over urls shows page not found error(404)
我有一个 "error.aspx" 页面,如果发现任何异常,它会给我发邮件。当我手动打开页面时,mysite.com/error.aspx,页面打开正常,但是当它被带有 exception.message 和 exception.stackTrace 作为查询字符串的 catch 块重定向时,我收到错误"page not found"。查询字符串是否指示浏览器打开不同的 url?不过,在本地主机上运行时它工作正常。
public void send_error(Exception ex)
{
Response.Redirect("error.aspx?time=" + DateTime.Now.ToString() + "&ex=" + ex.Message + "&st=" + ex.StackTrace.Replace("\n", " "), false);
}
如果您检查此 Article,您将看到 url 字符串的最大查询长度对于 Internet Explorer 是 2048 个符号。可能 url 更大,因此您遇到了这个问题。一种解决方案是将会话中的期望消息保存为字符串,然后在其他页面上检索它。
string errorMessage = DateTime.Now.ToString() + " " + ex.Message + " " + ex.StackTrace.Replace("\n", " ");
Session["__ErrMessage"] = errorMessage;
当你在其他页面时,你可以像这样访问这个字符串:
string errMessage = "";
if(Session["__ErrMessage"] != null)
errMessage = Session["ErrMessage"].ToString();
我有一个 "error.aspx" 页面,如果发现任何异常,它会给我发邮件。当我手动打开页面时,mysite.com/error.aspx,页面打开正常,但是当它被带有 exception.message 和 exception.stackTrace 作为查询字符串的 catch 块重定向时,我收到错误"page not found"。查询字符串是否指示浏览器打开不同的 url?不过,在本地主机上运行时它工作正常。
public void send_error(Exception ex)
{
Response.Redirect("error.aspx?time=" + DateTime.Now.ToString() + "&ex=" + ex.Message + "&st=" + ex.StackTrace.Replace("\n", " "), false);
}
如果您检查此 Article,您将看到 url 字符串的最大查询长度对于 Internet Explorer 是 2048 个符号。可能 url 更大,因此您遇到了这个问题。一种解决方案是将会话中的期望消息保存为字符串,然后在其他页面上检索它。
string errorMessage = DateTime.Now.ToString() + " " + ex.Message + " " + ex.StackTrace.Replace("\n", " ");
Session["__ErrMessage"] = errorMessage;
当你在其他页面时,你可以像这样访问这个字符串:
string errMessage = "";
if(Session["__ErrMessage"] != null)
errMessage = Session["ErrMessage"].ToString();