2010-05-06 3 views
0

내 문제는 내게 예외 전자 메일 때 예외 처리에서 User.Identity.Name 또는 Request.Url.AbsoluteUri입니다.
이 Application_Code입니다 :Application.Error in Global.asax

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 

사용자 이름과 요청 url이 emty 인 이유는 무엇입니까?
전송을 리디렉션으로 대체하거나 둘 다 사용하지 않으면이 문제가 발생합니다.
tanx는

답변

2

당신은

이 시도 올바른 방법으로 및 String.format를 설정하지 않습니다.

string.Format("AbsoluteUri: {0}", Request.Url.AbsoluteUri); 

이 코드에는 StringBuilder를 사용하는 것이 좋습니다.

+0

너무 좋기 때문에 stringbuilder에서도 AppendFormat 메서드가 이상적입니다. – Pharabus