Как я могу проверить в C #, если служба брокера включена в SQL? - PullRequest
5 голосов
/ 10 августа 2010

Я хочу проверить, запущена ли служба брокера с использованием кода и в зависимости от состояния, запускать sqldependency или нет. Как я могу это сделать?

1 Ответ

12 голосов
/ 10 августа 2010

Вы можете сделать простой запрос:

SELECT is_broker_enabled FROM sys.databases WHERE Name = 'mydatabasename'

В качестве альтернативы вы можете просто запустить SqlDependency и перехватить полученную ошибку, если она не была включена, но первый методпроще и лучше:

  try {
      SqlDependency.Start();
  } catch (InvalidOperationException ex) {
      // If broker hasn't been enabled, you'll get the following exception:
      //
      // The SQL Server Service Broker for the current database is not enabled, and
      // as a result query notifications are not supported.  Please enable the Service
      // Broker for this database if you wish to use notifications.
  }
...