ReceiveErrorHandling Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt die Behandlung von Giftnachrichten an.
public enum class ReceiveErrorHandling
public enum ReceiveErrorHandling
type ReceiveErrorHandling =
Public Enum ReceiveErrorHandling
- Vererbung
Felder
| Name | Wert | Beschreibung |
|---|---|---|
| Fault | 0 | Diese Option sendet einen Fehler an den Listener, der den ServiceHost-Fehler verursacht hat. Die Nachricht muss von einem externen Mechanismus aus der Anwendungswarteschlange entfernt werden, bevor die Anwendung weiterhin Nachrichten aus der Warteschlange verarbeiten kann. |
| Drop | 1 | Diese Option legt die Giftnachricht ab. Die Nachricht wird nie an die Anwendung übermittelt. Wenn die TTL der Nachricht an diesem Punkt bereits abgelaufen war, wird die Nachricht möglicherweise in der Warteschlange des Absenders angezeigt. Wenn dies nicht der Fall ist, erscheint die Nachricht nirgendwo. Diese Option gibt an, dass der Benutzer nicht wirklich darauf achtt, ob die Nachricht verloren geht. |
| Reject | 2 | Dadurch wird MSMQ angewiesen, eine negative Bestätigung an den Sendenden Warteschlangen-Manager zurückzusenden, dass die Nachricht nicht von der Anwendung empfangen werden kann. Die Nachricht wird in die Warteschlange des Sendenden Warteschlangenmanagers eingefügt. |
| Move | 3 | Dadurch wird die Giftnachricht zur späteren Verarbeitung durch eine Giftnachrichtenbehandlungsanwendung in eine Giftnachrichtenwarteschlange verschoben. |
Beispiele
Der folgende Konfigurationscode veranschaulicht, wie diese Eigenschaft in der Dienstkonfigurationsdatei festgelegt wird:
<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 Giftnachricht ist eine Nachricht, die wiederholte Versuche zur Übermittlung an die Anwendung fehlschlägt. Dies gilt nur bei Verwendung einer MSMQ-basierten Message Queuing-Bindung. Der Standardwert ist Fault, was den Listener und damit den ServiceHost fehlert. In dem Fall, in dem der Dienst wegen einer Giftnachricht fehlerhaft war, wird eine MsmqPoisonMessageException Geworfen. Die Ausnahme enthält die LookupId MSMQ-Nachricht, die zum Verschieben der Nachricht mithilfe der System.Messaging-API verwendet werden kann. Bestimmte Werte der ReceiveErrorHandling Enumeration, z Reject . B. und Move nur unter Windows Vista verfügbar. Sie steuern die Behandlung von Giftnachrichten, indem Sie die ReceiveErrorHandling Eigenschaft auf einen der Werte dieser Enumeration festlegen.