Application_Error 이벤트를 사용하여 내 앱에서 오류를 포착하고 기록합니다. 내 Web.config의에서 ASP.NET 응용 프로그램 오류가 404를 재정의합니까?
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
Dim ex As New Exception(_
String.Format("Error on page: '{0}'.", HttpContext.Current.Request.Url), _
Server.GetLastError())
Dim uid As Guid = Log.FatalError(ex)
Server.Transfer(String.Concat("~\\GlobalError.aspx?error=", uid))
End Sub
내가 가진 : 오류는 친절한 에러 화면이 표시되고 기록됩니다
사용자가 존재하지 않는 페이지를로드하려고 할 때마다
<customErrors mode="On" defaultRedirect="GlobalError.aspx">
<error statusCode="404" redirect="PageNotFound.aspx" />
</customErrors>
, 그들은 GlobalError.aspx 페이지를 가져오고 PageNotFound.aspx 페이지는 가져 오지 마십시오. Application_Error 이벤트를 살펴보면 Response StatusCode가 200이고 서버의 마지막 오류는 "Page 'foo.aspx'를 찾을 수 없다는 것을 알았습니다."
제대로 작동하려면 어떻게해야합니까?
이것에 대해 생각했지만 페이지가 발견되지 않더라도 StatusCode는 404가 아닌 200입니다. –
404 오류인지 감지하는 스 니펫을 추가했습니다 –
이것은 하나의 코드로 작동합니다. 기대하지만, 서투른 것처럼 보인다, 안 그래? 왜 이것을 알아 내야합니까? 왜 web.config가 예상대로 작동하지 않습니까? –