1

私のアプリケーションでは、404 のコードの下に書きました。

   Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
    Dim exc As Exception
            Dim readdInfo As New NameValueCollection

            exc = Server.GetLastError()
            Dim httpCode As Integer = CType(exc, HttpException).GetHttpCode()
            If httpCode = 404 Then
                If TypeOf Context.CurrentHandler Is System.Web.UI.Page Then
                    Context.Server.Transfer("404.aspx")
                    Context.Response.Flush()
                    Context.Response.End()
                Else
                    Context.RewritePath("404.aspx")
                    Context.Response.Clear()
                    Context.Response.ClearContent()
                    Context.Response.ClearHeaders()
                    **Context.CurrentHandler.ProcessRequest(Context)**
                    Context.Response.Flush()
                    Context.Response.End()
                End If
    End If
 End Sub

しかし、プログラムの上で実行しようとすると、 Context.CurrentHandler is null 例外が発生します。Server.Transfer の代わりに Response.Redirect を保持すると、301 ヘッダーが表示されます。ヘッダーチェックにhttp://404checker.com/full-header-checkerを使用しました

4

1 に答える 1