MVC 应用程序 - 从 Global.asax.cs 检索 LoaderExceptions

Posted

技术标签:

【中文标题】MVC 应用程序 - 从 Global.asax.cs 检索 LoaderExceptions【英文标题】:MVC Application - Retrieve the LoaderExceptions from Global.asax.cs 【发布时间】:2013-10-09 02:46:53 【问题描述】:

我在尝试实现同行的代码时遇到以下错误:

无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。

我看到有一篇关于如何“如何检索 LoaderException 属性?”的帖子。在这里 (How to retrieve the LoaderException property?)

但是,我不明白这个 try catch 应该去哪里,因为实现我的对等代码的代码在 Global.asax.cs 文件中。 (见下文)

任何帮助都将不胜感激,如果您对我投反对票,请解释原因。

namespace IMS_STS_Example_SIT

 // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
 // visit http://go.microsoft.com/?LinkId=9394801

 public class MvcApplication : StsMvcHttpApplication
 
    protected override void OnApplicationStarted()
    
        base.OnApplicationStarted();

        AreaRegistration.RegisterAllAreas();

        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);

    
 

这是来自 UI 的完整错误消息:

[ReflectionTypeLoadException:无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。] MyCompNameIT.Common.Utils.Installer.ConfigInstaller.Install(IWindsorContainer 容器,IConfigurationStore 存储)在 C:\MyCompNameProjects\PrideLands\Common\Main\Source\MyCompNameIT.Common\MyCompNameIT.Common.Utils\Installer\ConfigInstaller.cs:80 Castle.Windsor.WindsorContainer.Install(IWindsorInstaller[] 安装程序,DefaultComponentInstaller 范围)+200 Castle.Windsor.WindsorContainer.Install(IWindsorInstaller[] 安装程序)+144 C:\MyCompNameProjects\PrideLands\Common\Main\Source\MyCompNameIT.Common\MyCompNameIT.Common.Utils\InstallerExtension.cs:52 中的 MyCompNameIT.Common.Utils.InstallerExtension.WithMyCompNameDefaults(IWindsorContainer 容器) C:\MyCompNameProjects\PrideLands\Common\Main\Source\MyCompNameIT.Common\MyCompNameIT.Common.Web\InstallerExtension.cs:20 中的 MyCompNameIT.Common.Web.InstallerExtension.WithMyCompNameWebMvc(IWindsorContainer 容器) MyCompNameIT.Common.Web.MvcHttpApplication..cctor() 在 C:\MyCompNameProjects\PrideLands\Common\Main\Source\MyCompNameIT.Common\MyCompNameIT.Common.Web\IocHttpApplication.cs:30

[TypeInitializationException:'MyCompNameIT.Common.Web.MvcHttpApplication' 的类型初始化程序引发了异常。] MyCompNameIT.Common.Web.MvcHttpApplication..ctor() +0 IMS_STS_Example_SIT.MvcApplication..ctor() +40 c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\ims_sts_example_sit\2c6588da\447046b5\App_global.asax.lkasnsc6.0.cs:0 中的 ASP.global_asax..ctor() >

[TargetInvocationException:调用的目标已抛出异常。] System.RuntimeTypeHandle.CreateInstance(RuntimeType 类型,Boolean publicOnly,Boolean noCheck,Boolean& canBeCached,RuntimeMethodHandleInternal& ctor,Boolean& bNeedSecurityCheck) +0 System.RuntimeType.CreateInstanceSlow(布尔 publicOnly,布尔 skipCheckThis,布尔填充缓存,StackCrawlMark 和 stackMark)+159 System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +256 System.Activator.CreateInstance(类型类型,布尔非公共)+127 System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfoculture, Object[] activationAttributes, StackCrawlMark& stackMark) +14429965 System.Activator.CreateInstance(类型类型,BindingFlags bindingAttr,Binder binder,Object[] args,CultureInfo 文化,Object[] activationAttributes)+200 System.Activator.CreateInstance(类型类型,BindingFlags bindingAttr,Binder binder,Object[] args,CultureInfo 文化)+28 System.Web.HttpRuntime.CreateNonPublicInstance(类型类型,Object[] args)+83 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +312 System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +475

[HttpException (0x80004005): 调用目标抛出异常。] System.Web.HttpRuntime.FirstRequestInit(HttpContext 上下文) +12881108 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext 上下文)+159 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +12722297

【问题讨论】:

你尝试过MVC的默认超类而不是“StsMvcHttpApplication” 没有。 StsMvcHttpApplication 是我的同行代码所在的位置。我将发布我从 UI 收到的其余错误消息。 所以你需要确保这个类的所有依赖项都在那里 关于如何找到丢失的类有什么想法吗? 【参考方案1】:

StsMvcHttpApplication 替换为 MvcHttpApplication 或确保您引用的是 StsMvcHttpApplication 程序集及其所有依赖项

【讨论】:

StsMvcHttpApplication 是我的同行代码所在的位置。我发布了从 UI 收到的其余错误消息。

以上是关于MVC 应用程序 - 从 Global.asax.cs 检索 LoaderExceptions的主要内容,如果未能解决你的问题,请参考以下文章

asp.net mvc global.asax文件详解

MVC RedirectToAction 在 global.asax 中调用 Session_Start()

ASP.NET MVC中注册Global.asax的Application_Error事件处理全局异常

ASP.NET MVC 自定义错误处理 Application_Error Global.asax?

MVC4 中 Global.asax.cs 页面中的问题

Global.asax无法找到代码隐藏类