最近、Web サイトを MVC 5 に更新しました。開発マシンで問題なく動作しました。私のMVC 4サイトがうまく機能した.Net 4.0をサポートする共有ホスティングのステージングに移動したとき。展開後、次の例外を受け取りました。
Method not found: 'System.Web.WebPages.IDisplayMode
System.Web.Mvc.ControllerContext.get_DisplayMode()'.
問題をトラブルシューティングするためにいくつかのことを試しましたが、何も役に立ちませんでした。
- DisplayMode が MVC 5 でのみ追加されたプロパティであるかどうかのドキュメントを確認しました。間違っていました。msdnドキュメントでチェックされているように、MVC 4にもありました。
- MSDN で奇妙なことに、 System.Web.Mvc.ControllerContext タイプを確認すると、ここで指摘されました。ここで注意すべきことは、フレームワークのバージョンを 4.0 に変更すると、ControllerContext で同じプロパティが表示されないことです。なんか変な感じでした。
私の推測では、.Net 4.5 と MVC 5.0 の組み合わせにはこのメソッドがない可能性があります。
私のアセンブリバインディング。
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor"
publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>