【问题标题】:Why is my application returning the IIS 404 page on my dev environment but not test or production?为什么我的应用程序在我的开发环境中返回 IIS 404 页面,而不是测试或生产环境?
【发布时间】:2013-01-04 14:43:16
【问题描述】:

好的,所以我在http://dev.myapplication.com 本地开发我的应用程序(使用DNS 的主机文件),然后我有http://test.myapplication.comhttp://www.myapplication.com

在 IIS 7(相同版本,开发测试和实时版本)中,我打开了“错误页面”并编辑了 404 状态代码以转到路径“/en/404.mvc”。这在本地工作,我可以导航到产生 404 页面的http://dev.myapplication.com/non-existent-url.mvc

但是,如果我导航到 http://dev.myapplication.com/non-existent-url(即静态地址),它会显示 IIS 404 页面并说它是由静态文件处理程序而不是我的 mvc 文件处理程序处理的。

我对为什么会发生这种情况感到困惑,因为它成功地修改了我的 web.config,这反过来又允许它在测试和生活中工作,而不是在本地工作。即http://www.myapplication.com/404 将显示我自定义的 404 页面

【问题讨论】:

  • 您的本地应用程序池是否设置为集成模式?
  • 不,经典,每个环境都设置为经典
  • 啊——你有通配符映射来通过 aspnet_isapi 进程运行所有请求吗?集成模式可以解决这个问题,但您必须在经典模式下进行一些额外的跳跃。这 3 个网站是否都托管在同一台服务器上?
  • 是的,我刚刚查看了所有处理程序映射,它们在每台服务器上都是相同的。我必须添加 *.mvc 以使其命中 aspnet_isapi,但其他所有内容都保留为默认值。我有 3 台服务器,开发、测试和直播,但它在开发上不起作用。我能想到的唯一区别是我在本地运行的是 Windows 7,而另外两台服务器是 Windows Server 2008
  • 您可能正在运行不同版本的 IIS。 Windows 7 运行 IIS 7.5,Windows Server 2008 运行 IIS 7,Windows Server 2008 R2 运行 IIS 7.5。我会根据答案中的链接添加通配符映射

标签: c# iis http-status-code-404


【解决方案1】:

您需要一个通配符映射来通过 aspnet_isapi 运行所有请求 - 这篇文章很好地解释了它:http://www.asp.net/mvc/tutorials/older-versions/deployment/using-asp-net-mvc-with-different-versions-of-iis-cs

另外,请检查您的 web.Config 是否有以下设置:

<system.webServer>
  <validation validateIntegratedModeConfiguration="false"/>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

【讨论】:

  • 是的,我已经将它设置为使用它,但它只是给了我由 StaticFileHandler 直接提供的 404。某处有优先顺序吗?
  • 不要这么认为——你可能不希望它们都处于活动状态。这些天我运行的是 Windows 8,所以无法快速查看 IIS7.5 中的设置 - 您需要确保处理程序不能确保文件存在
  • 好的,我什至从 IIS 中删除了 StaticFile 处理程序模块,这导致以下内容被添加到我的 web.config.. 但是我仍然遇到同样的问题
  • 您有什么理由将其设置为经典而不是集成?我知道它不能回答这个问题,但它应该可以解决问题
  • 是的,我们使用 StructureMap 进行依赖注入,打开集成后,我们得到以下 StructureMap 异常: StructureMap.StructureMapException: StructureMap 异常代码:202 没有为 PluginFamily My.Namespace.IMyInterface 定义默认实例跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-25
  • 2013-10-25
  • 2014-04-24
相关资源
最近更新 更多