0

私たちのメイン サイトは ASP.net 4.5 で、Ektron (.net CMS) を使用しています。これを MVC4 / Webforms ハイブリッドに変えようとしています。
私が知る限り、MVC4 が必要とするものはすべて正しくインストールされていますが、デフォルトのホーム コントローラーにアクセスしようとすると、クラシックが表示されます。

[InvalidOperationException: The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/home/Index.aspx
~/Views/home/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/home/Index.cshtml
~/Views/home/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml]

NuGet を使用して MVC4 をインストールし、既定のコントローラー、ビュー、および関連付けられている App_Start ファイルと Global.asax ファイルを既定の MVC4 アプリケーションからコピーすることによってインストールしました。また、正常に動作しているWebAPIもインストールしました(つまり、ルーティングが正しく動作しているように見えます。つまり、API /値に移動して、デフォルト値のAPIデータを正常に戻すことができます)。

サイトがメイン Web サイトとしてインストールされます。つまり、サブ サイトまたはサブ アプリケーションとしてではありません。

Ektron (当社の CMS) には大量のハンドラーが追加されていますが、web.config がバラバラになっていて、そこに問題が見つからないため、ハンドラー セクションに問題があるのではないかと最初は考えていました。デフォルトの MVC4 アプリケーションのものに置き換えようとしても、同じエラーが発生しました。デフォルトのweb.configとカスタムセクションの1つのセクションを変更する必要があったことに注意してください。
このセクションがある場合:

      <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.1.10.0" newVersion="2.1.10.0" />
  </dependentAssembly>

エラーが発生します

Could not load file or assembly 'System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

そのDLLのアセンブリの詳細を調べたところ、バージョン4.0.0.0であることがわかったので、そのセクションを次のように変更しました

      <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
  </dependentAssembly>

そのエラーを修正するものと、私が知る限りでは問題ありませんが、ビューが見つからないという上記の問題が残っています。

どんな助けでも大歓迎です。

4

1 に答える 1