2011-07-12 74 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方法。 –