我面临一个问题:我确实想用 ASP.Net 进行 URL 重写
它使用我的本地设置可以完美运行,但是一旦在服务器上它就无法按预期工作。
当地的
对 /unavailable-file.aspx 的请求在 Application_Error (Global.asax.cs) 中运行良好,然后被重定向到 /404.aspx 对 /unavailable-random-folder 或任何其他文件的请求在 Application_Error (Global.asax.cs) 中运行良好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 页面(共享主机),它不会改变任何东西)
我希望一切都能像在本地模式下一样工作。
如果您对如何解决该问题有任何提示,请告诉我。