私たちのメイン サイトは 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>
そのエラーを修正するものと、私が知る限りでは問題ありませんが、ビューが見つからないという上記の問題が残っています。
どんな助けでも大歓迎です。