2010-11-16 67 views
1

我是NService總線中的新手,我嘗試使用MSMQSubscribtion存儲創建總線,但出現以下錯誤。嘗試使用MsmqSubscription存儲時發生異常

開始端點異常, 錯誤已被記錄。原因:錯誤 與名稱 'NServiceBus.Unicast.Subscriptions.Msmq.MsmqSubscriptionStorage' 創建對象:錯誤設置屬性值: PropertyAccessExceptionsException(1個 錯誤);嵌套0​​PropertyAccessExceptions是: [Spring.Core.TypeMismatchException: 無法 類型的屬性值轉換[System.String]所需類型 [System.String用於屬性 '隊列', 內部異常: System.ArgumentException :訂閱存儲 隊列存在 問題。有關詳細信息,請參閱所附的例外情況 。 ---> System.Messaging.MessageQueueException: 格式名稱無效。 在System.Messaging.MessageQueue.MQCacheableInfo.get_Transactional() 在System.Messaging.MessageQueue.get_Transactional() 在NServiceBus.Unicast.Subscriptions.Msmq.MsmqSubscriptionStorage.set_Queue(字符串 值) d:\ BuildAgent-02 \工作\ 672d81652eaca4e1 \ SRC \ IMPL \單播\ NServiceBus.Unicast.Subscriptions.Msmq \ MsmqSubscriptionStorage.cs:線 ---在NServiceBus.Unicast.Subscriptions.Msmq.MsmqSubscriptionStorage內部異常堆棧跟蹤--- 完.set_Queue(字符串 值) d:\ BuildAgent-02 \ work \ 672d81652eaca4e1 \ src \ impl \ unicast \ NServiceBus.Unicast.Subscriptions.Msmq \ MsmqSubscriptionStorage.cs:行 at(Object,Object,Object []) at Spring.Reflection.Dynamic.SafeProperty.SetValue(Object target,Object value)in l:\ projects \ spring-net \ trunk \ src \ Spring \ Spring.Core \ Reflection \ Dynamic \ DynamicProperty.cs:行 at Spring.Expressions.PropertyOrFieldNode.PropertyValueAccessor.Set(Object context,Object value) l:\ projects \ spring-net \ trunk \ src \ Spring \ Spring。芯\表達式\ PropertyOrFieldNode.cs:線在Spring.Expressions.PropertyOrFieldNode.SetPropertyOrFieldValueInternal(對象 上下文,對象newValue)以在 升:\項目\彈簧淨\主幹\ SRC \彈簧\ Spring.Core \表達式\ PropertyOrFieldNode.cs:行在Spring.Expressions.PropertyOrFieldNode.SetPropertyOrFieldValue(對象 上下文,EvaluationContext evalContext,對象newValue)以在 升:\項目\彈簧淨\主幹\ SRC \彈簧\ Spring.Core \表達式\ PropertyOrFieldNode.cs: line 348]

這是我的配置部分。

<configuration> 
     <configSections> 
     <section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig,NServiceBus.Core"/> 
     <section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig,NServiceBus.Core"/> 
     <section name="MsmqSubscriptionStorageConfig" 
       type="NServiceBus.Config.MsmqSubscriptionStorageConfig,NServiceBus.Core" /> 
     </configSections> 

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

     <UnicastBusConfig> 
     <MessageEndpointMappings> 
      <add Messages="MyMessages.Message1" Endpoint="PubQueue"/> 
     </MessageEndpointMappings> 
     </UnicastBusConfig> 
    </configuration> 

這是我嘗試創建總線

NServiceBus.Configure.With() 
     .DefaultBuilder() 
     .Log4Net() 
     .MsmqSubscriptionStorage() 
     .XmlSerializer() 
     .MsmqTransport() 
     .IsTransactional(true) 
     .UnicastBus() 
     .CreateBus(); 

任何一個可以解釋出了什麼問題給我嗎? 任何幫助將不勝感激。

謝謝 Alex。

回答

5

看起來您缺少實際的MsmqSubscriptionStorageConfig部分。這是必需的,並且會指向您的訂閱隊列。

<MsmqSubscriptionStorageConfig Queue="queueName" /> 
1

NServiceBus會自動使用一個稱爲「NServiceBus_Subscriptions」隊列,如果不是在配置文件中定義。一定要安裝MSMQ。

enter image description here

相關問題