我正在尝试将我的 ASP.Net MVC4 应用程序部署到 Azure,但它在部署过程中崩溃。显然这是因为某些东西正在请求程序集'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'。这一切都在本地完美运行,并且在 Azure 上调试是一场噩梦,因为部署对我来说需要 25-30 分钟。
我原以为我已经将 CLR 配置为不需要 MVC3,即使某些东西需要它,也可以使用:
<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 包。我猜其中一个正在请求 MVC3?有没有看到所有依赖项等的列表?
我得到:
CLR 异常类型:System.Reflection.ReflectionTypeLoadException “无法加载一种或多种请求的类型。检索 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”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT 异常:0x80131040)文件名:'System.Web.Mvc,版本 = 3.0.0.0,文化 = 中性,PublicKeyToken = 31bf3856ad364e35'警告:程序集绑定日志记录已关闭。要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 设置为 1。注意:与程序集绑定失败日志记录相关的一些性能损失。要关闭此功能,请删除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。
---> System.Reflection.ReflectionTypeLoadException:无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。在 System.Reflection.RuntimeModule.GetTypes(RuntimeModule 模块) 在 System.Reflection.RuntimeModule.GetTypes() 在 System.Reflection.Assembly.GetTypes() 在 Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.GetRoleEntryPoint(Assembly entryPointAssembly) --- 结束内部异常堆栈跟踪 ---
在 Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.GetRoleEntryPoint(Assembly entryPointAssembly) 在 Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.CreateRoleEntryPoint(RoleType roleTypeEnum) 在 Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.InitializeRoleInternal(RoleType roleTypeEnum) ModLoad: 000007fca2f00000 000007fc
a2f96000
D:\Windows \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”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT 异常:0x80131040)文件名:'System.Web.Mvc,版本 = 3.0.0.0,文化 = 中性,PublicKeyToken = 31bf3856ad364e35'
警告:程序集绑定日志记录已关闭。要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 设置为 1。注意:与程序集绑定失败日志记录相关的一些性能损失。要关闭此功能,请删除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。
InnerException: System.Reflection.ReflectionTypeLoadException,使用 !PrintException 00000000017dcf08 查看更多。StackTrace(生成):StackTraceString:HResult:80131522