ASP.Net MVC4アプリケーションをAzureに展開しようとしていますが、展開中にクラッシュします。どうやらこれは、何かがアセンブリ'System.Web.Mvc、Version = 3.0.0.0、Culture = neutral、PublicKeyToken=31bf3856ad364e35'を要求しているためです。これはすべてローカルで完全に機能し、デプロイに25〜30分かかるため、Azureでデバッグするのは悪夢です。
私は、次を使用して何かが必要な場合でも、MVC3を必要としないようにCLRを構成したと思っていました。
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
ObjectBrowserを見ると、MVC3を必要としているものは何もないようです。何がそれを要求しているかを理解するための最良の方法は何ですか?プロジェクトにはさまざまなNugetパッケージがあります。そのうちの1つがMVC3を要求していると思いますか?とにかくすべての依存関係などのリストを表示することはできますか?
私は得る:
CLR例外タイプ:System.Reflection.ReflectionTypeLoadException "1つ以上の要求されたタイプを読み込めません。詳細については、LoaderExceptionsプロパティを取得してください。" Microsoft.WindowsAzure.ServiceRuntimeクリティカル:201:ModLoad:000007fc
906a0000 000007fc
907a9000
D:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ diasymreader.dll役割のエントリポイントを作成できませんでした:System.TypeLoadException:次の例外のため、役割のエントリポイントを読み込めません:-System.IO.FileLoadException:ファイルまたはアセンブリ'System.Web.Mvc、Version = 3.0.0.0、Culture = neutral、PublicKeyToken=31bf3856ad364e35'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULTからの例外:0x80131040)ファイル名:'System.Web.Mvc、Version = 3.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'WRN:アセンブリバインディングログがオフになっています。アセンブリバインドの失敗のログを有効にするには、レジストリ値[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)を1に設定します。注:アセンブリのバインドの失敗のログには、パフォーマンスの低下があります。この機能をオフにするには、レジストリ値[HKLM \ Software \ Microsoft \ Fusion!EnableLog]を削除します。
---> System.Reflection.ReflectionTypeLoadException:要求されたタイプの1つ以上をロードできません。詳細については、LoaderExceptionsプロパティを取得してください。System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)at System.Reflection.RuntimeModule.GetTypes()at System.Reflection.Assembly.GetTypes()at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.GetRoleEntryPoint(Assembly entryPointAssembly)---終了内部例外スタックトレースの---
Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.GetRoleEntryPoint(Assembly entryPointAssembly)at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.CreateRoleEntryPoint(RoleType roleTypeEnum )at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.InitializeRoleInternal(RoleType roleTypeEnum)a2f00000 000007fc
Mod
\ SYSTEM32 \ clbcatq.dll ntdll!ZwTerminateProcess + 0xa:000007fc`a2fa2eaa c3 ret
と
Exception object: 00000000017e0070 Exception type: System.TypeLoadException Message: Unable to load the role
次の例外によるエントリポイント:-System.IO.FileLoadException:ファイルまたはアセンブリ'System.Web.Mvc、Version = 3.0.0.0、Culture = neutral、PublicKeyToken=31bf3856ad364e35'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULTからの例外:0x80131040)ファイル名:'System.Web.Mvc、Version = 3.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'
WRN:アセンブリバインディングログがオフになっています。アセンブリバインドの失敗のログを有効にするには、レジストリ値[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)を1に設定します。注:アセンブリのバインドの失敗のログには、パフォーマンスの低下があります。この機能をオフにするには、レジストリ値[HKLM \ Software \ Microsoft \ Fusion!EnableLog]を削除します。
InnerException:System.Reflection.ReflectionTypeLoadException、!PrintException 00000000017dcf08を使用して、詳細を確認してください。StackTrace(生成):StackTraceString:HResult:80131522