0

現在壊れているプロジェクトをピックアップし、修正しようとしています。

このアプリケーションは、MVC2.0で実装されたいくつかの機能を備えた.NET3.5Webフォームアプリケーションとして最後に正しく機能していました。

アプリケーションは、.NET 4.0にアップグレードされ、IIS 7で実行されているときに壊れています。Webフォーム機能は正常に機能しますが、MVC2.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)で動作します。IIS 7(Win 2k8)に展開したときにMVCが機能しないのはなぜですか?

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 に答える