在URL上传递长查询字符串显示页面未找到错误(404)

时间:2015-01-03 19:25:03

标签: c# query-string

我有一个" error.aspx"如果发现任何异常,在那里给我发邮件的页面。当我手动打开页面mysite.com/error.aspx时,页面打开正常但是当它被一个带有exception.message和exception.stackTrace作为查询字符串的catch块重定向时,我收到错误"页面没有发现&#34 ;.查询字符串是否指示浏览器打开不同的URL?但是,在localhost上运行时它可以正常工作。

     public void send_error(Exception ex)
    {
   Response.Redirect("error.aspx?time=" + DateTime.Now.ToString() + "&ex=" + ex.Message + "&st=" + ex.StackTrace.Replace("\n", " "), false);

    }

1 个答案:

答案 0 :(得分:1)

如果选中此Article,您会看到网址字符串的最大查询长度为Internet Explorer的2048个符号。可能网址更大,因此你有这个问题。一种解决方案是将欲望消息作为字符串保存在会话中,然后在其他页面上检索它。

string errorMessage = DateTime.Now.ToString() + " " + ex.Message + " " + ex.StackTrace.Replace("\n", " ");
Session["__ErrMessage"] = errorMessage;

当您在其他页面中时,您可以像这样访问此字符串:

string errMessage = "";

if(Session["__ErrMessage"] != null)
    errMessage = Session["ErrMessage"].ToString();