2011-07-12 77 views
2

我想起床并运行我的NServiceBus设置。nservicebus启动错误

我基本上试图复制一些AsyncPages示例项目。

在我CommandServer项目中,我有以下配置:

<MsmqTransportConfig 
    InputQueue="SonatribeInputQueue" 
    ErrorQueue="error" 
    NumberOfWorkerThreads="1" 
    MaxRetries="5" 
/> 

我有以下消息端点:

public class MessageEndpoint : IConfigureThisEndpoint, AsA_Server, IWantCustomInitialization 
    { 
     /// <summary> 
     /// Perform initialization logic. 
     /// </summary> 
     public void Init() 
     { 
      Console.WriteLine("Configuring persistence..."); 
      var container = new WindsorContainer(); 
      container.Install(FromAssembly.InDirectory(new AssemblyFilter(Assembly.GetExecutingAssembly().Location, "CommandServer.*.dll"))); 
      Configure.With() 
       .CastleWindsorBuilder(container).BinarySerializer(); 
     } 
    } 
在我的邮件项目

我有下面的类:

[Serializable] 
public class Command : IMessage 
{ 
    public int Id { get; set; } 
} 

回到CommandServer项目我有相应的CommandHandler:

public class CommandMessageHandler : IHandleMessages<Command> 
{ 
    public IBus Bus { get; set; } 

    public void Handle(Command message) 
    { 
     Logger.Info(string.Format("Server 1 received Command with Id {0}.", message.Id)); 
    } 

    private static readonly ILog Logger = LogManager.GetLogger(typeof(CommandMessageHandler)); 
} 

不,除了windsor的东西 - 根本不影响这个 - 没有什么区别于异步项目。但每当我运行CommandServer我得到以下输出:

Configuring eventstore persistence... 

2011-07-12 16:33:32,524 [1] WARN NServiceBus.Unicast.UnicastBus [(null)] <(null 
)> - LocalAddress property of UnicastBusConfig not found. Using InputQueue prope 
rty of MsmqTransportConfig instead. This will not be supported in the next versi 
on. 
2011-07-12 16:33:32,702 [1] INFO NServiceBus.Hosting.Roles.RoleManager [(null)] 
<(null)> - Role NServiceBus.AsA_Server configured 
2011-07-12 16:33:32,750 [1] INFO NServiceBus.Host [(null)] <(null)> - Going to 
activate profile: NServiceBus.Lite, NServiceBus.Host, Version=3.0.0.0, Culture=n 
eutral, PublicKeyToken=9fc386479f8a226c 
2011-07-12 16:33:35,749 [1] FATAL NServiceBus.Hosting.GenericHost [(null)] <(nul 
l)> - System.InvalidOperationException: No destination could be found for messag 
e type Messages.Command. Check the <MessageEndpointMapping> section of the confi 
guration of this endpoint for an entry either for this specific message type or 
for its assembly. 
    at NServiceBus.Unicast.UnicastBus.Subscribe(Type messageType, Predicate`1 con 
dition) in c:\Dev\NServiceBus\src\unicast\NServiceBus.Unicast\UnicastBus.cs:line 
405 
    at NServiceBus.Unicast.UnicastBus.Subscribe(Type messageType) in c:\Dev\NServ 
iceBus\src\unicast\NServiceBus.Unicast\UnicastBus.cs:line 353 
    at NServiceBus.Unicast.UnicastBus.PerformAutoSubcribe() in c:\Dev\NServiceBus 
\src\unicast\NServiceBus.Unicast\UnicastBus.cs:line 754 
    at NServiceBus.Unicast.UnicastBus.NServiceBus.IStartableBus.Start(Action star 
tupAction) in c:\Dev\NServiceBus\src\unicast\NServiceBus.Unicast\UnicastBus.cs:l 
ine 739 
    at NServiceBus.Unicast.UnicastBus.NServiceBus.IStartableBus.Start() in c:\Dev 
\NServiceBus\src\unicast\NServiceBus.Unicast\UnicastBus.cs:line 702 
    at NServiceBus.Hosting.GenericHost.Start() in c:\Dev\NServiceBus\src\hosting\ 
NServiceBus.Hosting\GenericHost.cs:line 99 

任何想法我做错了什么?

+0

你使用NServiceBus 3.0的原因是什么?它尚未发布。它看起来像你试图使用2.5风格的配置3.0。它与2.5做同样的事情吗? –

+0

需要用最新的windsor进行编译... – iwayneo

+0

如果我认为我会尝试使用旧的nsb dll重新编译它。 – iwayneo

回答

0

这基本上是因为我将v3与v2.5的东西混合在一起,并获得了完整的尾部旋转。

问题来自2.5下载并未构建NSB站点的事实。 Udi现在更新了2.5 github分支中的rev,并且我将尝试使用它来获得最新的种类,这样我就可以跳过使用3.0,直到它足够稳定。

换句话说 - 这应该只是工作。

2

我想你会发现,你缺少的MessageEndpointMapping部分

您正在使用没有做任何Bus.Send,因此并不需要消息映射部分样品。

,在这sample的处理程序是Bus.Return

另一种选择的唯一的事情是,你打算在结束了的消息使用Bus.Send与队列名称。

+0

我没有在服务器中使用bus.send! – iwayneo

+0

自动订阅似乎是错误输出中的问题,您可能会注意到“NServiceBus.Unicast.UnicastBus.PerformAutoSubcribe()”尝试添加.BinarySerializer()。UnicastBus()。DoNotAutoSubscribe();到你的init方法。 –