全部。由于 Pluralsight 和互联网,我开始使用 NServiceBus 并很好地掌握了基础知识。我有一个股票 MVC 4 项目,我为我的控制器设置了依赖注入(感谢这篇博文)。
这是我在 Global.asax 中设置总线的方式:
_bus = Configure.With()
.DefaultBuilder()
.ForMVC()
.Log4Net()
.XmlSerializer()
.MsmqTransport()
.UnicastBus()
.SendOnly();
我将它分配给一个本地私有变量,因为我需要访问 Global 中的总线,所以我可以在 Session_End 上做一些事情。但是,当我运行时,我收到以下错误:
请求的服务“System.Web.Mvc.IControllerFactory”尚未注册。要避免此异常,请注册一个组件以提供服务,使用 IsRegistered() 检查服务注册,或使用 ResolveOptional() 方法解决可选依赖项。
根据我的堆栈跟踪,故障点是 Autofac 尝试解析类型时。为了理智起见,我删除了私有变量,只使用了 Configure 语句,同样的事情。我还在这个应用程序中连接了 Ninject,因为这是我选择的 IoC。认为它以某种方式干扰了 Autofac,我从等式中删除了 Ninject,但仍然无法正常工作。
所以我的问题是,我做错了什么?我错过了什么吗?这是我第一次使用 NServiceBus,但从我所看到的一切来看,这应该可以正常工作。任何信息都会非常有帮助。谢谢。