【问题标题】:ASP.NET and HTTP 404 problem (IIS problem)ASP.NET 和 HTTP 404 问题(IIS 问题)
【发布时间】:2011-04-02 12:36:34
【问题描述】:

net webforms 应用程序,它是旧网店的新版本。我有很多来自 Internet 的入站链接,指向特定类别页面:http://www.example.com/category1.html,新设置中该类别的路径类似于:http://www.example.com/category.aspx?id=42

我已经设置 Category.aspx 页面来处理错误并重定向到自定义页面,记录错误并重定向到我的首页。

我已经设置 Global.asax Application_Error 来做同样的事情

我已经设置了 Web.config,使用与上述相同的概念来中继 404 的自定义错误。

一切都在 Visual Studio(内置 Web 服务器)中正常工作,当我将它发布到我的 Web 主机时,它不起作用,他们说它在集成模式下运行......任何人都有解决方案到这个?

【问题讨论】:

  • 如果您只想访问 category.aspx 是否有效?它记录任何错误吗? HTTP 404 是基于您的重定向还是由 IIS 触发? IIS 中的 Web 应用程序可能配置不正确,因此 example.com... 不会指向您的应用程序。

标签: asp.net iis http-status-code-404


【解决方案1】:

使用内置网络服务器,每个请求都像处理 asp.net 页面一样处理,因此在这种情况下始终使用您的 web.config。

然而,在 IIS 中,.html 不是由 asp.net 而是由静态文件处理程序处理,因此 web.config 被忽略(尽管 IIS7 会查看 web.config 的某些内容,但这与您的问题无关)

因此,您需要让 .html 由 asp.net 处理(将 .html 扩展名设置为由与 IIS 中的 .aspx 页面相同的 dll 处理),或者您应该在 IIS 中设置错误页面(而不是在您的 web.config 中)。

【讨论】:

    【解决方案2】:

    IIS 在集成模式下运行,所以我终于发现我无法按照我的方式处理这个问题,我编写了一个 httphandler,在 web.config 中注册并分配它来拦截对 *.html 文件的所有调用.我所要做的就是重定向到正确的源页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-13
      • 2013-05-03
      • 1970-01-01
      相关资源
      最近更新 更多