Чтобы ответить на ваши вопросы:
Могу ли я прослушать службу SQL Server
Брокерские очереди из приложений .NET
работает на другой машине?
Да.
Если это так, я должен это сделать?
Если нет, что бы вы порекомендовали?
Вы можете рассмотреть возможность использования SqlDependency
. Он использует Service Broker за кулисами, но не явно.
Вы можете зарегистрировать объект SqlDependency
с помощью запроса SELECT
или хранимой процедуры. Если другая команда изменяет данные, которые были возвращены из запроса, событие будет запущено. Вы можете зарегистрировать обработчик событий и запускать любой код, который вам нравится в это время. Или вы можете использовать SqlCacheDependency
, который просто удалит связанный объект из кэша при возникновении события.
Вы также можете напрямую использовать Service Broker. Однако в этом случае вам нужно будет отправлять и получать собственные сообщения, как в MSMQ.
В средах с балансировкой нагрузки SqlDependency
подходит для случаев, когда код должен выполняться на каждом веб-сервере (например, очистка кэша). Сообщения компонента Service Broker лучше подходят для кода, чем для запуска только один раз, например для отправки электронного письма.
Если это поможет, я подробно рассмотрю обе системы с примерами из своей книги ( Ultra-Fast ASP.NET ).