1

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 000007fc907a9000
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 000007fcMod
\ 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

4

1 に答える 1

1

Reflectorを使用して、Nugetパッケージを読み込み、それらの依存関係を確認できます。1つがMVC3に依存しているかどうかを見つけるのはかなり簡単なはずです。ただし、アセンブリバインディングは正常に見えます。ソリューションに複数のプロジェクトがありますか?それらの1つは、MVC3に依存するNugetパッケージに依存している可能性がありますか?

この投稿が役立つかもしれません:.NETソリューションから「依存関係ツリー図」を作成するにはどうすればよいですか?

于 2013-01-04T10:10:56.720 に答える