1

メッセージを受信する準備ができているサービスバスキューに接続されているWCFサービスがあります。これはうまく機能していますが、メッセージの処理に問題がある場合は、メッセージをDeadLetterとしてマークできるようにしたいと思います。現在、私のコードが例外をスローした場合でも、メッセージはキューから削除されますが、構成でキューから削除しないように指定できるようにしたいのですが、DeadLetterとしてマークします。私はいくつかの検索を行いましたが、それを行う方法がわかりません。現在、Windowsサービスとしてサービスを実行しています

Uri baseAddress = ServiceBusEnvironment.CreateServiceUri( "sb"、 "namespace"、 "servicequeue"); _serviceHost = new ServiceHost(typeof(PaperlessImportServiceOneWay)、baseAddress); _serviceHost.Open();

構成:

<services>
      <service name="Enrollment.ServiceOneWay">
        <endpoint name="ServiceOneWay"
                  address="sb://namespace.servicebus.windows.net/servicequeue"
                  binding="netMessagingBinding"
                  bindingConfiguration="messagingBinding"
                  contract="IServiceOneWaySoap"
                  behaviorConfiguration="sbTokenProvider" />
      </service>
</services>
      <netMessagingBinding>
        <binding name="messagingBinding" closeTimeout="00:03:00" openTimeout="00:03:00"
               receiveTimeout="00:03:00" sendTimeout="00:03:00" sessionIdleTimeout="00:01:00"
               prefetchCount="-1">
          <transportSettings batchFlushInterval="00:00:01" />
        </binding>
      </netMessagingBinding>

<behavior name="sbTokenProvider">
          <transportClientEndpointBehavior>
            <tokenProvider>
              <sharedSecret issuerName="owner" issuerSecret="XXXXXXXXXXXXXXXXXXXXXXXX" />
            </tokenProvider>
          </transportClientEndpointBehavior>
        </behavior>
4

1 に答える 1

1

操作コントラクトのインターフェイスにこの [ReceiveContextEnabled(ManualControl = true)] を追加すると、メッセージをコミットまたは破棄することができます。このリンクで見つかりました: http://msdn.microsoft.com/en-us/library/windowsazure /hh532034.aspx

于 2013-02-15T18:15:40.907 に答える