我的问题是异常处理中的User.Identity.Name或Request.Url.AbsoluteUri在向我发送异常电子邮件时为空。
这是Application_Code:
void Application_Error(object sender, EventArgs e)
{
Server.Transfer("~/errors/default.aspx");
}
这是default.aspx代码:
protected void Page_Load(object sender, EventArgs e)
{
if (Server.GetLastError() == null)
return;
Exception ex = Server.GetLastError().GetBaseException();
if (ex == null)
return;
string message = string.Format("User: ", User.Identity.Name);
message += Environment.NewLine;
message += string.Format("AbsoluteUri: ", Request.Url.AbsoluteUri);
message += Environment.NewLine;
message += string.Format("Form: ", Request.Form.ToString());
message += Environment.NewLine;
message += string.Format("QueryString: ", Request.QueryString.ToString());
message += Environment.NewLine;
但我收到这样的电子邮件(这是没有完整异常内容的标题):
User:
AbsoluteUri:
Form:
QueryString:
Browser Capabilities:
Type = IE8
Name = IE
Version = 8.0
Platform = WinXP
Is Crawler = False
Supports Cookies = True
Supports JavaScript = 1.2
为什么用户名和请求网址是emty?
当我用重定向替换传输或我不使用两者时,这个问题是存在的。
坦
答案 0 :(得分:2)
您没有以正确的方式设置string.Format
试试这个。
string.Format("AbsoluteUri: {0}", Request.Url.AbsoluteUri);
我怎么建议将StringBuilder用于此代码。