2017-05-23 5 views
0

Lorsque j'appelle MassTransit.Publish sur le bus de service azure, j'ai une exception car l'appel est dans TransactionScope.Comment appeler le bus de service azure dans transactioncope

The feature 'Transaction' is not supported with the current configuration 

Comment envoyer un message sur le bus sans mode de transaction, dans la transactioncope? Je ne veux pas de transaction pour le bus mais uniquement pour la base de données.

Merci.

Répondre

0

Vous pouvez utiliser la boîte d'envoi en mémoire pour effectuer l'envoi une fois la transaction terminée.

cfg.ReceiveEndpoint(host, "my-queue", e => 
{ 
    e.UseInMemoryOutbox(); 
    e.Consumer<MyConsumer>(...); 
}); 

Avec la configuration, les questions d'ordre, donc si vous utilisez un Retry ou un autre composant middleware il devrait se présenter devant la boîte d'envoi en mémoire dans la configuration. Vos consommateurs devraient être après tous les composants middleware.