2011-02-08 44 views
0

所以我建立的出版商和下面是我的配置不滿意依賴通過對象屬性表示

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<configSections> 
<section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" /> 
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" /> 
<section name="DBSubscriptionStorageConfig" type="NServiceBus.Config.DBSubscriptionStorageConfig, NServiceBus.Core" /> 
</configSections> 


<!-- 1. In order to configure remote endpoints use the format: "[email protected]" 
    2. Input queue must be on the same machine as the process feeding off of it. 
    3. Error queue can (and often should) be on a different machine. 
    4. The community edition doesn't support more than one worker thread. 
--> 

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

<DBSubscriptionStorageConfig> 
<NHibernateProperties> 
    <add Key="connection.provider" 
     Value="NHibernate.Connection.DriverConnectionProvider"/> 
    <add Key="connection.driver_class" 
     Value="NHibernate.Driver.SqlClientDriver"/> 
    <add Key="connection.connection_string" 
     Value="Server=<dbserver>;initial catalog=NServiceBus;Integrated Security=SSPI"/> 
    <add Key="dialect" 
     Value="NHibernate.Dialect.MsSql2005Dialect"/> 
</NHibernateProperties> 
</DBSubscriptionStorageConfig> 


<UnicastBusConfig 
DistributorControlAddress="" 
DistributorDataAddress="" 
ForwardReceivedMessagesTo=""> 
<MessageEndpointMappings> 
</MessageEndpointMappings> 
</UnicastBusConfig> 


</configuration> 

,這裏是我的終點

class EndpointConfig : IConfigureThisEndpoint, AsA_Publisher, IWantCustomInitialization 
{ 
    public void Init() 
    { 
     NServiceBus.Configure.With() 
      .Log4Net() 
      .DefaultBuilder() 
      .XmlSerializer() 
      .UnicastBus() 
      .ImpersonateSender(false) 
      .MsmqTransport() 
      .IsTransactional(true) 
      .DBSubcriptionStorage(); 
    } 
} 

}

我得到以下異常

啓動端點時發生異常,記錄了錯誤。原因:創建具有名稱'NServiceBus.Unicast.UnicastBus'的對象時出錯:通過對象屬性'SubscriptionStorage'表示的不滿意的依賴關係:有2個類型爲[NServiceBus.Unicast.Subscriptions.ISubscriptionStorage]的對象,用於按類型自動裝配,只需1就可以自動裝載對象'NServiceBus.Unicast.UnicastBus'的屬性'SubscriptionStorage'。

任何幫助表示讚賞

+0

添加更多的信息,我得到了同樣的錯誤,如果認購儲存更改爲MsmqSubscriptionStorage。這是已知的問題。任何幫助表示讚賞.... – singhsa 2011-02-08 21:20:04

回答

0

僅使用角色,如果他們設置你想要什麼。嘗試刪除As_aPublisher,看看它是否適合你。在你的情況下,角色和你自己的代碼都會註冊一個sub.storeage,這就是你的例外。

1

我有同樣的問題,並通過在配置結束時調用.CreateBus()解決了這個問題:

class EndpointConfig : IConfigureThisEndpoint, AsA_Publisher, IWantCustomInitialization 
{ 
    public void Init() 
    { 
     NServiceBus.Configure.With() 
      .Log4Net() 
      .DefaultBuilder() 
      .XmlSerializer() 
      .UnicastBus() 
      .ImpersonateSender(false) 
      .MsmqTransport() 
      .IsTransactional(true) 
      .DBSubcriptionStorage() 
      .CreateBus(); 
    } 
} 
相關問題