EventLog не поддерживает транзакции.Я не думаю, что есть какая-либо конкретная документация по этому вопросу.Это имеет смысл, поскольку в документации редко упоминаются вещи, которые не поддерживаются, если только нет явной причины для этого (пояснения, распространенное заблуждение и т. Д.).
С практической точки зренияпростой тест показывает, что сообщения регистрируются, даже если транзакция откатывается:
class Program
{
static void Main(string[] args)
{
EventLog.WriteEntry("Application", "Start");
using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew))
{
EventLog.WriteEntry("Application", "123");
}
EventLog.WriteEntry("Application", "End");
}
}
В средстве просмотра событий я вижу 3 события («Начало», «123», «Конец»).
С теоретической точки зрения EventLog
должен был бы иметь менеджер ресурсов для участия в транзакции .Либо EventLog
потребуется реализовать IEnlistmentNotification
или содержать класс, который реализует IEnlistmentNotification
.Проверка EventLog
в отражателе показывает, что он не реализует IEnlistmentNotification
.