gpt4 book ai didi

asp.net - 开发 Web 服务器在 404 上触发 Application_Error,为什么 IIS7 没有?

转载 作者:行者123 更新时间:2023-12-01 06:48:51 25 4
gpt4 key购买 nike

我正在使用 Application_Error 来捕获一些旧的 URL 和 URL 快捷方式。在 Global.vb 我有这个代码:

    Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
Dim serverError = TryCast(Server.GetLastError(), HttpException)
If serverError IsNot Nothing Then
Dim errorCode As Integer = serverError.GetHttpCode()
If 404 = errorCode Then
' Do some custom processing here
End If
End If
End Sub

在 web.config 我有这个,以确保所有请求,而不仅仅是以 .aspx 结尾的请求,都由 aspnet_isapi.dll 处理,以便我处理它们:
        <add name="ASP.NET-ISAPI-2.0-Wildcard" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness32" />

在我的开发箱(使用 Cassini)上,这在所有情况下都可以正常工作:/badurl 和/badurl.aspx 都会导致 Application_Error 触发。

然而,在 IIS7 中,/badurl.aspx 可以按预期工作,但/badurl 只会生成一个通用的服务器生成的 404 页面。

任何想法导致差异的原因,以及如何让 IIS7 复制开发服务器的行为?

最佳答案

尝试将此添加到 web.config 文件。

 <customErrors mode="On" defaultRedirect="appError.aspx">
<error statusCode="403" redirect="appError.aspx"/>
<error statusCode="404" redirect="appError.aspx"/>
</customErrors>

关于asp.net - 开发 Web 服务器在 404 上触发 Application_Error,为什么 IIS7 没有?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1598424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com