ReceiveErrorHandling Enumeration

Definition

Legt die Behandlung von nicht verarbeitbaren Nachrichten fest.Specifies handling for poison messages.

public enum class ReceiveErrorHandling
public enum ReceiveErrorHandling
type ReceiveErrorHandling = 
Public Enum ReceiveErrorHandling
Vererbung
ReceiveErrorHandling

Felder

Drop 1

Diese Option verwirft die beschädigte Nachricht.This option drops the poison message. Die Nachricht wird der Anwendung nicht zugestellt.The message never gets delivered to the application. Wenn die Gültigkeitsdauer (Time to Live, TTL) der Nachricht zu diesem Zeitpunkt bereits abgelaufen ist, kann die Nachricht in der Warteschlange für unzustellbare Nachrichten des Absenders angezeigt werden.If the message's TTL had already expired at this point, then the message may appear in the sender's Dead Letter Queue. Andernfalls wird die Nachricht nirgendwo angezeigt.If not, the message does not appear anywhere. Diese Option gibt an, dass es für den Benutzer nicht wirklich wichtig ist, wenn die Nachricht verloren geht.This option indicates that the user does not really care if the message is lost.

Fault 0

Diese Option sendet einen Fehler an den Listener, der bewirkt hat, dass der ServiceHost fehlerhaft agiert.This option sends a fault to the listener that caused the ServiceHost to fault. Die Nachricht muss durch einen externen Mechanismus aus der Anwendungswarteschlange entfernt werden, bevor die Anwendung mit der Verarbeitung von Nachrichten aus der Warteschlange fortfahren kann.The message must be removed from the application queue by some external mechanism before the application can continue to process messages from the queue.

Move 3

Hierdurch wird die beschädigte Nachricht in eine Warteschlange für beschädigte Nachrichten verschoben, sodass sie später durch eine Anwendung zur Handhabung beschädigter Nachrichten verarbeitet werden kann.This moves the poison message to a Poison Message Queue for later processing by a poison message handling application.

Reject 2

Damit wird das Message Queuing (MSMQ) angewiesen, eine negative Bestätigung an den Warteschlangen-Manager zurück zu senden, die den Hinweis enthält, dass die Anwendung die Nachricht nicht empfangen kann.This instructs MSMQ to send a negative acknowledgement back to the sending queue manager that the message cannot be received by the application. Die Nachricht wird in die Warteschlange für unzustellbare Nachrichten des sendenden Warteschlangen-Managers eingefügt.The message is placed in the sending queue manager's Dead Letter Queue.

Beispiele

Der folgende Konfigurationscode veranschaulicht das Einstellen dieser Eigenschaft in der Dienstkonfigurationsdatei:The following configuration code illustrates how to set this property in the service configuration file:

<configuration>
  <appSettings>
    <!-- use appSetting to configure MSMQ queue name -->
    <add key="queueName" value=".\private$\ServiceModelSamplesPoison" />
    <add key="baseAddress" value="http://localhost:8000/orderProcessor/poisonSample"/>
  </appSettings>
  <system.serviceModel>
    <services>
      <service 
              name="Microsoft.ServiceModel.Samples.OrderProcessorService">
        <!-- Define NetMsmqEndpoint -->
        <endpoint address="net.msmq://localhost/private/ServiceModelSamplesPoison"
                  binding="netMsmqBinding"
                  bindingConfiguration="PoisonBinding" 
                  contract="Microsoft.ServiceModel.Samples.IOrderProcessor" />
      </service>
    </services>

    <bindings>
      <netMsmqBinding>
        <binding name="PoisonBinding" 
                 receiveRetryCount="0"
                 maxRetryCycles="1"
                 retryCycleDelay="00:00:05" 					 
                 receiveErrorHandling="Fault"
                        />
      </netMsmqBinding>
    </bindings>
  </system.serviceModel>
</configuration>

Hinweise

Eine nicht verarbeitbare Nachricht ist eine Nachricht, die wiederholte Versuche zur Überlieferung an die Anwendung nicht besteht.A poison message is a message that fails repeated attempts to deliver to the application. Dies ist nur zutreffend, wenn eine auf Message Queuing (MSMQ) basierende Bindung verwendet wird.This is applicable only when using a Message Queuing (MSMQ)-based binding. Der Standardwert ist Fault, wodurch der Listener und somit auch der ServiceHost fehlerhaft agieren.The default value is Fault, which faults the listener and therefore the ServiceHost. In Fällen, in denen der Dienst aufgrund einer beschädigten Nachricht fehlerhaft agiert, wird MsmqPoisonMessageException ausgelöst.In the case where the service was to fault because of a poison message, a MsmqPoisonMessageException is thrown. Die Ausnahme enthält die LookupId-Einstellung der MSMQ-Nachricht, die dazu verwendet werden kann, die Nachricht mit System.Messaging API beiseite zu schieben.The exception contains the LookupId of the MSMQ message that can be used to move the message out of the way using System.Messaging API. Bestimmte Werte der ReceiveErrorHandling-Enumeration, wie Reject und Move, sind nur auf Windows VistaWindows Vista verfügbar.Certain values of the ReceiveErrorHandling enumeration such as Reject and Move are only available on Windows VistaWindows Vista. Sie können die Handhabung beschädigter Nachrichten steuern, indem Sie die ReceiveErrorHandling-Eigenschaft auf einen der Werte dieser Enumeration festlegen.You control poison message handling by setting the ReceiveErrorHandling property to one of the values of this enumeration.

Gilt für:

Siehe auch