通过NServiceBus.Host.exe启动端点时出现异常

时间:2013-03-04 20:43:04

标签: nservicebus .net-4.5 autofac

我正在使用.NET 4.5项目中的NServiceBus处理示例消息处理程序服务。只要使用DefaultBuilder,它就可以正常工作。要在添加对Autofac的引用并将DefaultBuilder更改为AutofacBuilder后立即使用Autofac为其他服务配置容器,我将获得异常,如下所示。对NServiceBus.ObjectBuilder.Autofac.dll的引用已经在项目中。

  

启动端点时出现异常,已记录错误。原因:可以   不加载文件或程序集'Autofac,Version = 2.6.1.841,   Culture = neutral,PublicKeyToken = 17863af14b0044da'或其中一个   依赖。定位程序集的清单定义没有   匹配程序集引用。 (HRESULT异常:0x80131040)

     

警告:比较装配名称导致不匹配:主要版本
  错误:无法完成程序集的设置(hr = 0x80131040)。探测终止。

我做错了什么?我尝试过Nuget,手动引用,将目标框架更改为4.0。

修改

添加绑定重定向后,错误消息将更改为

Method not found: 'Autofac.Builder.IRegistrationBuilder`3<!0,!1,!2>
Autofac.Builder.IRegistrationBuilder`3.PropertiesAutowired(Autofac.PropertyWiringFlags)'.

at NServiceBus.Hosting.GenericHost.Start() in c:\BuildAgent\work\nsb.master_6\src\hosting\NServiceBus.Hosting\GenericHost.cs:line 43
at NServiceBus.Hosting.Windows.WindowsHost.Start() in c:\BuildAgent\work\nsb.master_6\src\hosting\NServiceBus.Hosting.Windows\WindowsHost.cs:line 55
at NServiceBus.Hosting.Windows.Program.<>c__DisplayClass8.<Main>b__4(WindowsHost service) in c:\BuildAgent\work\nsb.master_6\src\hosting\NServiceBus.Hosting.Windows\Program.cs:line 97
at Topshelf.Internal.ControllerDelegates`1.StartActionObject(Object obj) in c:\Projects\TopShelfForNSB\src\Topshelf\Internal\ControllerDelegates.cs:line 17
at Topshelf.Internal.IsolatedServiceControllerWrapper`1.<>c__DisplayClass2.<set_StartAction>b__1(TService service) in c:\Projects\TopShelfForNSB\src\Topshelf\Internal\IsolatedServiceControllerWrapper.cs:line 65
at Topshelf.Internal.ServiceController`1.<.cctor>b__1(ServiceController`1 sc) in c:\Projects\TopShelfForNSB\src\Topshelf\Internal\ServiceController.cs:line 35
at Magnum.StateMachine.LambdaAction`1.Execute(T instance, Event event, Object parameter) in :line 0
at Magnum.StateMachine.EventActionList`1.Execute(T stateMachine, Event event, Object parameter) in :line 0

App.Config中

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
  </assemblyBinding>
</runtime>

1 个答案:

答案 0 :(得分:3)

NServiceBus v3.3.5使用Autofac v2.6.1.841,如果您引用的是另一个版本,则需要添加绑定重定向。