ReceiveErrorHandling Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa obsługę zatruć komunikatów.
public enum class ReceiveErrorHandling
public enum ReceiveErrorHandling
type ReceiveErrorHandling =
Public Enum ReceiveErrorHandling
- Dziedziczenie
Pola
Drop | 1 | Ta opcja powoduje porzucenie komunikatu o truciznie. Komunikat nigdy nie jest dostarczany do aplikacji. Jeśli czas wygaśnięcia komunikatu już wygasł w tym momencie, komunikat może pojawić się w kolejce utraconych listów nadawcy. Jeśli tak nie jest, komunikat nie jest wyświetlany w żadnym miejscu. Ta opcja wskazuje, że użytkownik nie dba o to, czy komunikat zostanie utracony. |
Fault | 0 | Ta opcja wysyła błąd do odbiornika, który spowodował błąd ServiceHost. Komunikat musi zostać usunięty z kolejki aplikacji przez jakiś mechanizm zewnętrzny, zanim aplikacja będzie mogła nadal przetwarzać komunikaty z kolejki. |
Move | 3 | Spowoduje to przeniesienie komunikatu otrucia do kolejki zatruć komunikatów w celu późniejszego przetworzenia przez aplikację obsługi zatruć komunikatów. |
Reject | 2 | Spowoduje to wysłanie negatywnego potwierdzenia do menedżera kolejki wysyłania, że nie można odebrać komunikatu przez aplikację. Komunikat jest umieszczany w kolejce utraconych listów menedżera kolejki wysyłania. |
Przykłady
Poniższy kod konfiguracji ilustruje sposób ustawiania tej właściwości w pliku konfiguracji usługi:
<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>
Uwagi
Komunikat o truciznie to komunikat, który kończy się niepowodzeniem, powtarza się próby dostarczenia do aplikacji. Ma to zastosowanie tylko w przypadku korzystania z powiązania opartego na kolejce komunikatów (MSMQ). Wartość domyślna to Fault
, która powoduje usterkę odbiornika, a zatem parametr ServiceHost. W przypadku, gdy usługa została uszkodzona z powodu zatrutego komunikatu, MsmqPoisonMessageException jest zgłaszany. Wyjątek zawiera LookupId
komunikat MSMQ, który może służyć do przenoszenia komunikatu z drogi przy użyciu interfejsu API System.Messaging. Niektóre wartości wyliczenia ReceiveErrorHandling , takie jak Reject
i Move
są dostępne tylko w systemie Windows Vista. Obsługa komunikatów otrutych można kontrolować, ustawiając ReceiveErrorHandling właściwość na jedną z wartości tego wyliczenia.