0

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

该应用程序最后一次作为 .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) 时不起作用?

4

1 回答 1

1

modules元素需要按照此答案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>
于 2012-04-30T22:19:20.383 回答