さまざまなプロジェクトを含むソリューションを実行しています。ただし、Visual Studio 2015とフレームワーク4.6(Windows 8 OSではIIS Express)を使用してwcfサービスを含むプロジェクト(クラスライブラリ)を実行しようとしています。ただし、このエラーが引き続き表示されます。ブラウザ:
エラー:
Razor2.0の呼び出し元のアセンブリが「System.Web.Mvc」バージョン4.0.0.1であることに気付きました。
アセンブリの呼び出し:System.Web.Mvc、Version = 4.0.0.1、Culture = neutral、PublicKeyToken = 31bf3856ad364e35。
ただし、System.Web.MVC dllはこのプロジェクトでは参照されていません。プロジェクトでの参照は、次の画像にあります。
参照されていませんが、クリアしても常にbinフォルダーに表示されます。そして、それが「System.Web.WebPages.Razor」バージョン2.0を呼び出そうとしている理由かもしれません。
問題の手がかりを明らかにする:
<runtime>
<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<packages>
<package id="EntityFramework" version="6.1.3" targetFramework="net46" />
<package id="Microsoft.AspNet.Providers" version="2.0.0" targetFramework="net451" />
<package id="Microsoft.AspNet.Providers.Core" version="2.0.0" targetFramework="net451" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" />
<package id="PostSharp" version="4.3.5-alpha" targetFramework="net46" />
<package id="System.Web.Providers" version="1.2" targetFramework="net451" />
</packages>
私は何が起こっているのか疑問に思っていますか?別のプロジェクトがそれに影響を与える可能性があります!また、ナゲットを使用してパッケージを更新しようとしました(アンインストールおよび再インストール)が、それでも同じ状況です。
問題の考えられる理由:
また、このプロジェクトには、「System.Web.HttpApplicationを実装する "MvcApplication"クラス」を使用する "Gobal.asax"ファイルがあることに気付きました。 「これが問題の正当な理由かもしれません。
どんな助けでも大歓迎です。
解決策:nugetmanagerを介してバージョン2.0のMicrosoft.AspNet.Webpages最初のリリースをインストールします。
まず、アセンブリバインディングの失敗を確認します。これにより、どのアセンブリが失敗したバインディングを要求しているかがわかります。
バインディングの失敗を表示するために使用できる便利な小さなツールがあります。これは、それを追跡するのに役立つはずです。
https://msdn.Microsoft.com/en-us/library/e74a18c4(v = vs.71).aspx
幸運を!
私の場合、エラーはデプロイ後のものであり、問題はそのサーバーのサブフォルダー内のweb.config内の参照でした。
私はそのマシンにリモートでアクセスし、ローカルでサイトを閲覧することでこれをトラブルシューティングしました(またはweb.configでリモートエラーを有効にすることができます)
<section name="Host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
したがって、必ずすべてのファイルで2.0.0.0またはSystem.Web.WebPages.Razorを検索して、どこかに参照がないことを確認してください。
このエラーが発生していましたが、エラーがスローされているプロジェクトには、Microsoft.AspNet.Webpagesが正しくインストールされています。次に、別のプロジェクトに保持されているWCFサービスがMVCインストールを失ったことに気付きました。
そのため、他のプロジェクトにMicrosoft.AspNet.Mvcをインストールすると、このエラーが修正されました。