【问题标题】:Autofac can't resolve HTTPContext parameter while the correct module is present存在正确的模块时 Autofac 无法解析 HTTPContext 参数
【发布时间】:2015-04-16 11:58:28
【问题描述】:

所以我使用 Autofac 作为 DI 框架和 MVC5。我的一个服务类将 HttpContext 作为参数,所以我正在注册 Autofac.Integration.Mvc.AutofacWebTypesModule,因为它建议 here

在 Visual Studio 本身中收到一条错误消息,在关闭 Visual Studio 并重新打开后它消失了。但是,我在加载网站时仍然收到相同的消息:

Cannot resolve parameter 'System.Web.HttpContext httpContext' of constructor 'Void .ctor(System.Web.HttpContext)'.

编辑:更新为类的完整路径

【问题讨论】:

  • 您的AutofacWebTypesModule 来自哪里?通常它应该来自 Autofac.Integration.Mvc 程序集。是这样吗?
  • 您能分享一下您所说的“Visual Studio 中的红线”的屏幕截图吗?
  • 否,因为我不再收到相同的错误消息。我仍然在网页上获得 500。让我更新问题的文本...
  • 您正在尝试将HttpContext 注入到不在正确范围内的组件中。你是如何注册这个组件的?你是怎么解决的?假设它们已正确注册,将 HttpContext 注入您的 MVC 控制器之一应该不会有任何问题。
  • 当你解析你的组件时你有一个活动的httpcontext:解析过程是否遵循http请求?错误的调用栈是什么?

标签: asp.net-mvc autofac httpcontext


【解决方案1】:

AutofacWebTypesModule 只注册 HttpContextBase 而不是 HttpContext 并且它们不受继承层次结构的限制。而不是 HttpContext 在您的控制器构造函数中接受 HttpContextBase 类型参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多