【问题标题】:404 handling - Difference between local ASP.Net (C# 4) and remote server (live)404 处理 - 本地 ASP.Net (C# 4) 和远程服务器 (live) 之间的区别
【发布时间】: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


    【解决方案1】:

    在开发 Web 服务器中,每个请求都由 aspx 引擎处理,仅此而已。在实时服务器中,不同的文件类型由不同的引擎处理。

    要使实时服务器对每个请求都使用 aspx 引擎,您必须更改网站的 IIS 配置。

    相关:ASP.net web.config doesn't catch all 404's

    【讨论】:

    【解决方案2】:

    当你有一个共享环境时,这里给出了这个问题的解决方案:

    1. 在您的共享环境设置中激活 ASP.Net 集成管道(自 IIS 7 起可用)
    2. 将此添加到 web.config:

      <system.webServer>
      <modules runAllManagedModulesForAllRequests="true">
        <add name="RedirectHttpModule" type="RedirectHttpModule" />
      </modules>
      </system.webServer>
      

    其中 RedirectHttpModule 是处理 Application_BeginRequest 的自定义模块。

    “runAllManagedModulesForAllRequests”表示将对 Web 应用程序的所有请求调用所有托管模块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-17
      • 2012-12-17
      • 1970-01-01
      • 2010-11-28
      • 2021-06-23
      • 1970-01-01
      • 2016-05-09
      相关资源
      最近更新 更多