【问题标题】:Autofac doesnot cannot resolve types when in IIS sub applicationAutofac 在 IIS 子应用程序中无法解析类型
【发布时间】:2014-08-29 08:04:42
【问题描述】:

有谁知道为什么当根目录中有一个应用程序以及 IIS 的子应用程序中有另一个应用程序时 autofac 无法初始化 mvc 控制器?如何解决这个问题?

当应用程序托管在 IIS 的不同网站中时,它们可以正常工作。

所以在图像中,根应用程序(mvc web)部署在根目录中,但网络服务(mvc api)不起作用。

错误是

发生错误。尝试创建“UserController”类型的控制器时发生错误。确保控制器在 System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType) 处具有无参数的公共构造函数。System.InvalidOperationException 在 System.Web.Http.Controllers.HttpControllerDescriptor.CreateController(HttpRequestMessage 请求) 在 System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncCore(HttpRequestMessage 请求,CancellationToken 取消令牌) 在 System.Web.Http.Dispatcher.HttpControllerDispatcher.d__0.MoveNext() 发生错误。在“BurpDaddyEntities”类型上调用构造函数“Void .ctor()”时引发异常。 ---> 'System.Data.Entity.Internal.AppConfig' 的类型初始化程序引发了异常。 (有关详细信息,请参阅内部异常。) Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate() 处的 Autofac.Core.DependencyResolutionException 在 Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable1 parameters) at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable1 参数)

【问题讨论】:

    标签: autofac


    【解决方案1】:

    虽然顶级异常似乎来自 Autofac,但如果您低头查看导致整个事情的内部异常问题,您会看到真正的异常是 The type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception. 这意味着该类的静态构造函数去了错了。

    幸运的是,实际上有一个问题(有答案!)直接与您在使用 Entity Framework 的嵌套网站中所面临的问题有关: The type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception on a Sub Website

    【讨论】:

    • 我知道我迟到了,但值得一提的是,在您提供的文章中,有一节讨论了清除继承的配置。这样做对我有帮助。谢谢!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多