尝试使用MsmqSubscription存储时发生异常

wiz*_*rdz 1 msmq nservicebus

我是NService总线的新手,我正在尝试使用MSMQSubscribtion存储创建一个总线,但我收到以下错误.

启动端点时出现异常,已记录错误.原因:创建名为"NServiceBus.Unicast.Subscriptions.Msmq.MsmqSubscriptionStorage"的对象时出错:设置属性值时出错:PropertyAccessExceptionsException(1 errors); 嵌套的PropertyAccessExceptions是:[Spring.Core.TypeMismatchException:无法将类型[System.String]的属性值转换为属性'Queue'所需的类型[System.String].,内部异常:System.ArgumentException:存在问题订阅存储队列.有关详细信息,请参阅附上 ---> System.Messaging.MessageQueueException:格式名无效.在System.Messaging.MessageQueue.MQCacheableInfo.get_Transactional()处于NServiceBus的System.Messaging.MessageQueue.get_Transactional()处.

这是我的配置部分.

<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> 
Run Code Online (Sandbox Code Playgroud)

这就是我尝试创建总线的方式

    NServiceBus.Configure.With()
        .DefaultBuilder()
        .Log4Net()
        .MsmqSubscriptionStorage()
        .XmlSerializer()
        .MsmqTransport()
        .IsTransactional(true)
        .UnicastBus()
        .CreateBus();
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释我的错误吗?任何帮助将非常感激.

谢谢Alex.

Ada*_*les 5

看起来你错过了实际的MsmqSubscriptionStorageConfig部分.这是必需的,并将指向您的订阅队列.

<MsmqSubscriptionStorageConfig Queue="queueName" />
Run Code Online (Sandbox Code Playgroud)