Question

Je suis en train de créer un service de lecture de la lettre morte du système transactionnel de file d'attente lettre morte.

La configuration du service ressemble à ceci:

<service name="NotificationDeadLetterQueueService">
 <endpoint
  address="net.msmq://localhost/system$;DeadXact"
  binding="netMsmqBinding"
  contract="INotificationService"
/>
</service>

Mon interface de service:

[ServiceContract]
public interface INotificationService
{
[OperationContract(IsOneWay=true)]
[NetDataContractSerializerFormatAttribute]
void HandleNotification(Notification notification);
}

Avec ma mise en œuvre de service:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class NotificationDeadLetterQueueService : INotificationService
{
   #region INotificationService Members

   [OperationBehavior(TransactionScopeRequired = true)]
   public void HandleNotification(Notification notification)
   {
      throw new NotImplementedException();
   }

   #endregion
}

Et commencer l'hôte comme ceci:

ServiceHost serviceHost = new ServiceHost(typeof(NotificationDeadLetterQueueService));
serviceHost.Open();

Jusqu'à présent, tout ressemble décrit dans de nombreux livres et des tutoriels, mais quand je produis morts-lettres dans la lettre morte transactionnelle la file d'attente le service ne soit pas invoquée. Ce qui ne va pas dans mon service?

Merci pour l'aide Enyra

Était-ce utile?

La solution

J'ai trouvé le problème, ce qui est tout à fait affaire. Le critère d'évaluation client MSMQ utilise une configuration de liaison avec, de sorte que le service de file d'attente de lettres mortes aussi besoin d'une liaison qui définit le mode de sécurité sans pareil.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top