WCF добавляет абстракцию над MSMQ. Фактически, после определения совместимых контрактов (операции должны выполняться OneWay), вы можете прозрачно отключить MSMQ в конфигурации. (Например, вы можете переключиться на обычный HttpWS или привязку NetTcp.)
Вам следует оценить другие преимущества WCF, такие как безопасность и т. Д., Чтобы увидеть, насколько они соответствуют вашим потребностям. Опять же, они должны быть достаточно прозрачными из-за того, что вы используете MSMQ внизу. Например, добавление безопасности SOAP и т. Д. Должно «просто работать», независимо от использования MSMQ.
(Хотя, IIRC, вам все равно необходимо войти в систему на каждом компьютере, использующем MSMQ, с учетной записью службы, которая будет использовать MSMQ , для создания сертификата в локальном профиле компьютеров. И затем это не очень хорошо работает с IIS6, так как профили пользователей не загружаются. Реальная боль в целом, но не имеет ничего общего с WCF специально.)
Кроме этого:
Вы смотрели на SQL Server Service Broker? После использования MSMQ + WCF и SSSB, я думаю, что SSSB значительно проще в настройке и управлении. SSSB работает с командами T-SQL через любой клиент SQL (я использую его из Mono, в Linux, с транзакциями). Это также даст вам транзакционную отправку / получение, даже удаленно (я думаю, что MSMQ 4 теперь позволяет это). Это действительно снимает много боли с очереди сообщений, и если вы уже используете SQL Server ...
SSSB часто упускается из виду, поскольку в SQL Management Studio нет дизайнеров графического интерфейса для всего этого, но это не сложно и является отличным вариантом. Единственным недостатком является то, что если вам нужна возможность локальной отправки (то есть сообщение в очереди, когда сеть не работает), вам необходимо запустить локальный экземпляр SQL Express.