I am newbie in NService bus and I am trying to create a bus using MSMQSubscribtion storage , but I am getting following error.
Exception when starting endpoint, error has been logged. Reason: Error creating object with name 'NServiceBus.Unicast.Subscriptions.Msmq.MsmqSubscriptionStorage' : Error setting property values: PropertyAccessExceptionsException (1 errors); nested PropertyAccessExceptions are: [Spring.Core.TypeMismatchException: Cannot convert property value of type [System.String] to required type [System.String] for property 'Queue'., Inner Exception: System.ArgumentException: There is a problem with the subscription storage queue . See enclosed exception for details. ---> System.Messaging.MessageQueueException: Format name is invalid. at System.Messaging.MessageQueue.MQCacheableInfo.get_Transactional() at System.Messaging.MessageQueue.get_Transactional() at NServiceBus.Unicast.Subscriptions.Msmq.MsmqSubscriptionStorage.set_Queue(String value) in d:\BuildAgent-02\work\672d81652eaca4e1\src\impl\unicast\NServiceBus.Unicast.Subscriptions.Msmq\MsmqSubscriptionStorage.cs:line 184 --- End of inner exception stack trace --- at NServiceBus.Unicast.Subscriptions.Msmq.MsmqSubscriptionStorage.set_Queue(String value) in d:\BuildAgent-02\work\672d81652eaca4e1\src\impl\unicast\NServiceBus.Unicast.Subscriptions.Msmq\MsmqSubscriptionStorage.cs:line 188 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:line 204 at Spring.Expressions.PropertyOrFieldNode.PropertyValueAccessor.Set(Object context, Object value) in l:\projects\spring-net\trunk\src\Spring\Spring.Core\Expressions\PropertyOrFieldNode.cs:line 585 at Spring.Expressions.PropertyOrFieldNode.SetPropertyOrFieldValueInternal(Object context, Object newValue) in l:\projects\spring-net\trunk\src\Spring\Spring.Core\Expressions\PropertyOrFieldNode.cs:line 406 at Spring.Expressions.PropertyOrFieldNode.SetPropertyOrFieldValue(Object context, EvaluationContext evalContext, Object newValue) in l:\projects\spring-net\trunk\src\Spring\Spring.Core\Expressions\PropertyOrFieldNode.cs:line 348]
This is my Config section .
<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"/>
</MessageEndpointM开发者_Python百科appings>
</UnicastBusConfig>
</configuration>
This is how I tried to create the bus
NServiceBus.Configure.With()
.DefaultBuilder()
.Log4Net()
.MsmqSubscriptionStorage()
.XmlSerializer()
.MsmqTransport()
.IsTransactional(true)
.UnicastBus()
.CreateBus();
Can any one explain what went wrong for me? Any help would be much appreciated.
Thanks Alex.
Looks like you are missing the actual MsmqSubscriptionStorageConfig section. This is required and will point to your subscription queue.
<MsmqSubscriptionStorageConfig Queue="queueName" />
NServiceBus will automatically use a queue called "NServiceBus_Subscriptions", if not defined in configuration file. Be sure to have installed MSMQ.
精彩评论