Я думаю, что вы путаете две вещи здесь.Транспорт MSMQ в WCF - это просто механизм транспорта, который можно использовать вместо HTTP или TCP.Ваша проблема в том, что (я предполагаю) вы хотите асинхронно регистрировать из службы WCF, что является хорошей идеей.EntLib включает службу MSMQ Distributor, которая будет собирать события журналирования, записанные из вашего приложения в очередь, при условии правильно настроенной конфигурации блока журналирования, в которой MSMQ указывается в качестве места назначения.Затем дистрибьютор фактически запишет его в базу данных.
Асинхронное ведение журнала - очень разумная вещь, потому что она гарантирует, что ваши события находятся на постоянном носителе в катастрофических ситуациях, когда БД, например, покончила с БД.,Не говоря уже о том, что к базе данных не обращаются как к части обычных операций приложения, что исключает потенциальную точку отказа.
Я работал над веб-приложением однажды, когда использовался собственный механизм ведения журнала базы данных.Были места, где операция БД происходила бы внутри транзакции, и в случае сбоя (скажем, ошибка реляционного ограничения из ADO) записывала сообщение в журнал ... только для его отката вместе с основной транзакцией.Это та проблема, с которой вы можете столкнуться, если будете писать напрямую в базу данных в рамках своей стратегии обработки исключений.
В любом случае, я не уверен, отвечает ли это на ваш вопрос. Вот хороший обзор того, как все это работает в EntLib.