【问题标题】:MVC 2/ASP.NET 4.0 App not workingMVC 2/ASP.NET 4.0 应用程序不工作
【发布时间】:2012-04-30 05:21:05
【问题描述】:

我找到了一个目前已损坏的项目,我正在尝试修复它。

该应用程序上次作为 .NET 3.5 Web 窗体应用程序正常工作,其中一些功能在 MVC 2.0 中实现。

该应用程序在升级到 .NET 4.0 并在 IIS 7 上运行时出现故障。Web 窗体功能正常工作,但 MVC 2.0 部分不再工作。浏览到 MVC URL 失败并出现 404 错误。似乎在浏览 URL 时 MVC 没有启动。

我已将 web.config 的摘录放在下面。

<compilation defaultLanguage="c#" debug="true">
  <assemblies>
    <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>      
  </assemblies>
</compilation>

<system.webServer>
    <modules>
        <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </modules>
    <handlers>
    </handlers>
</system.webServer>

它适用于开发 PC (Windows 7)。为什么 MVC 在部署到 IIS 7 (Win 2k8) 时不起作用?

【问题讨论】:

  • MVC 框架依靠路由来知道要加载哪个控制器和视图。您能否发布您的 Global.asax 文件和您尝试访问的示例 URL?

标签: asp.net asp.net-mvc-2 iis-7 url-routing asp.net-4.0


【解决方案1】:

modules 元素需要按照this answer 中的说明设置runAllManagedModulesForAllRequests

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
        <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </modules>
    <handlers>
    </handlers>
</system.webServer>

【讨论】:

    猜你喜欢
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多