【发布时间】:2012-06-12 01:10:42
【问题描述】:
我遇到了一个问题: 我确实想用 ASP.Net 进行 URL 重写
使用我的本地设置可以完美运行,但是一旦在服务器上它就无法按预期运行。
本地
对 /unavailable-file.aspx 的请求在 Application_Error (Global.asax.cs) 中恢复正常,然后被重定向到 /404.aspx 对 /unavailable-random-folder 或任何其他文件的请求在 Application_Error (Global.asax.cs) 中运行良好,然后被重定向到 /404.aspx
远程 对 .aspx 文件的任何请求都将在 Application_Error 中捕获 其他所有请求(.jpg、文件夹等)都不会被捕获并引发默认的 404 页面错误
我的问题:
昨天我正在将我的新网站安装到服务器上,我看到 Application_BeginRequest 甚至没有在我的服务器上被触发,而每次(对于每个请求的文件或文件夹)在我的本地计算机(使用 Visual Studio) . 我必须创建一个 HttpModule,现在我成功地触发了事件……但不适用于非 .aspx 请求。
一切似乎都绑定在 URL 上:当它以 .aspx 结尾时,它得到了正确的管理,如果不是,它根本就没有被管理。
即使对于非 aspx 页面,我应该怎么做才能捕获每个 Application_BeginRequest?
我的 web.config 中有它,试图将 404 错误强制到我的页面中:
<customErrors mode="On"
defaultRedirect="404.aspx">
<error statusCode="404" redirect="404.aspx"/>
</customErrors>
但正如我所说,只要它不是以 .aspx 结尾的请求,它就不会被重定向,并且我会收到默认的 ASP.Net 404 错误。
(如果可以提供帮助,我的主机是“reliablesite”,并且我的 404 错误设置指向管理器内的我的 404.aspx 页面(共享主机),它不会改变任何东西)
我希望一切都像在本地模式下一样工作。
如果您对如何解决该问题有任何提示,请告诉我。
【问题讨论】:
标签: asp.net error-handling http-status-code-404