【发布时间】:2013-11-28 02:30:38
【问题描述】:
我正在检查 Global.asax 文件中的有效页面,如下所示:
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
' Fires at the beginning of each request
Dim path As String = HttpContext.Current.Request.Path.ToUpper
If Not (path.EndsWith(".ASPX") OrElse path.EndsWith(".PNG") OrElse path.EndsWith(".GIF") OrElse path.EndsWith(".MASTER") OrElse path.EndsWith(".JS") OrElse path.EndsWith(".CSS") OrElse path.EndsWith(".PDF")) Then
'invalid page
Response.Redirect("/ErrorPageNotFound.aspx?aspxerrorpath=" + HttpContext.Current.Request.Path)
End If
End Sub
并且我已经通过 web.config 进行了修改以包含以下行:
<error statusCode="404" redirect="ErrorPageNotFound.aspx"/>
这在 Visual Studio 开发服务器或 UltiDev Web 服务器下运行时工作正常,但是当我在 Visual Studio 或完整的 IIS 中使用本地 IIS Web 服务器并尝试访问不存在的 foo.php 时,我得到标准的 IIS 404 错误页。请注意,如果我导航到 foo.aspx,我会看到我的自定义错误页面。
似乎 IIS 在请求到达我的代码并决定重新路由它之前就看到了它?有没有办法解决这个问题?
【问题讨论】:
-
IIS 是否设置为将文件类型定向到 .NET?
标签: asp.net .net iis visual-studio-2012