【问题标题】:Combres.axd returns 404 in WebForms appCombres.axd 在 WebForms 应用程序中返回 404
【发布时间】:2011-11-24 00:30:06
【问题描述】:

我有 2 个 ASP.NET 应用程序、1 个 WebForms 和 1 个 MVC。 Combres 在本地从事 IIS Express 工作时,两者都表现出色。将两个应用程序部署到测试服务器(IIS 7,两个应用程序都在 IIS 中的同一个网站中)后,WebForms 应用程序页面中引用的 combres.axd 链接返回 404,而 MVC 应用程序工作正常。

我也将 WebForms 应用程序连接到我的本地 IIS,它再次正常工作。

我查看了本地 IIS、MVC 应用和 WebForms 应用之间的模块和处理程序,并且路由注册似乎相同。

如果我设置 defaultDebugEnabled="true" 那么它会为资源集中的每个脚本生成一个脚本标记并且工作正常。

任何想法如何从 combres.axd 调试 404?

【问题讨论】:

  • 我也有同样的问题。运气好了吗?它也不适用于我的本地 IIS。我还没有尝试过 IIS Express。
  • 还没有,我暂时使用 defaultDebugtEnabled="true",直到我有更多时间进行故障排除。但是,每次后续部署的行为都是一致的。我的 QA、暂存和生产站点(都在 IIS 7 上)有同样的问题。

标签: asp.net routing webforms combres


【解决方案1】:

追踪到 web.config 中的模块配置:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

我正在使用围绕 .NET 3.0/3.5 创建的旧版 WebForms 应用程序,因此我没有设置 runAllManagedModulesForAllRequests 属性。我在最新的 Visual Studio 2010 ASP.NET WebForms 模板中看到,现在这是默认的。

我还发现了一个post,它建议使用一种不那么暴力的方法来让 UrlRoutingModule 捕获 combres.axd 路由。

<system.webServer>
    <modules>
        <remove name="UrlRoutingModule-4.0" />
        <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
    </modules>
</system.webServer>

其中一个 cmet 提到了这个更新,不过我还没有测试过:

http://support.microsoft.com/kb/980368

【讨论】:

  • 完美。我在子应用程序上错过了它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-06
  • 2014-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多