Udostępnij za pośrednictwem


ReceiveErrorHandling Wyliczenie

Definicja

Określa obsługę zatruć komunikatów.

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

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.

Dotyczy

Zobacz też