Application_Error イベントを使用して、アプリのエラーをキャッチしてログに記録します。エラーがログに記録され、わかりやすいエラー画面が表示されます。
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
私のweb.configには次のものがあります:
<customErrors mode="On" defaultRedirect="GlobalError.aspx">
<error statusCode="404" redirect="PageNotFound.aspx" />
</customErrors>
ユーザーが存在しないページを読み込もうとすると、PageNotFound.aspx ページではなく、GlobalError.aspx ページが表示されます。Application_Error イベントを調べたところ、Response StatusCode が 200 であることがわかりましたが、サーバーの最後のエラーは「ページ 'foo.aspx' が見つかりませんでした」でした。
これを正しく機能させるにはどうすればよいですか?