У меня есть программа, которая в настоящее время выбрасывает Сделка MSMQ не была начата. MSQM будет отправлять сообщения в очередь «мертвой» очереди, если эта транзакция используется для отправки без какого-либо предупреждения или исключения! исключение. Я не уверен, что я сделал неправильно, так или иначе, чтобы отлаживать/регистрировать текущий статус транзакции очереди сообщений?Есть ли все-таки, чтобы отлаживать/регистрировать транзакцию очереди сообщений?
В принципе, я в настоящее время получил:
DoSomething(); // may have problem here
using (var scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted, Timeout = TransactionManager.DefaultTimeout }))
{
// throws exception here, but I believe the above method does something wrong
bus.Publish(new SomethingHappened(1, "test"));
scope.Complete();
}
Хорошо. Я могу получить текущий контекст транзакции с TransactionContext.Current. Сообщение MessageQueueTransactionStatus выполнено. Поэтому я не знаю, почему он не очищен? – Yin
Вы можете показать конфигурацию своей шины? – user1121956
и что делает DoSomething(), если вы говорите, что это может вызвать проблемы, пытались ли вы его избежать? – user1121956