Comment créer un service lettre morte WCF pour MSMQ3.0
-
24-09-2019 - |
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
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.