Зависимость SQL от SQL Server 2008 Express - PullRequest
2 голосов
/ 05 августа 2011

У меня есть приложение, которое успешно использует SqlDependency с SQL Server 2008 Standard Edition.Но если я переключаю строку подключения на SQL Server 2008 express (с включенным брокером), он перестает работать.

Я не уверен, является ли он специфичным для SQL Server Express, но какие шаги я должен выполнить, чтобы выяснить,причина проблемы?

Обновление.Под «прекращением работы» я подразумеваю, что уведомления не генерируются SqlDependency

Ответы [ 2 ]

5 голосов
/ 05 августа 2011

Чтобы понять, как работает SQL-зависимость, я рекомендую прочитать Таинственное уведомление . Для устранения неполадок выполните обычные диалоги устранения неполадок . Типичным виновником, как и в статье, которую вы нашли, является контекст EXECUTE AS, необходимый для доставки сообщений Service Broker. Это легко увидеть из transmission_status уведомлений sys.transmission_queue, и изменение владельца базы данных на действительный логин (ALTER AUTHORIZATION ON DATABASE::[<dbname>] TO [sa]) исправит это. Однако могут возникнуть другие проблемы, шаги по устранению неполадок в моей ссылке помогут вам найти их.

3 голосов
/ 05 августа 2011

Как указал @Remus, мои предположения, основанные на вводящей в заблуждение документации, были неверными: SQL Server Express в некоторой степени поддерживает Service Broker, несмотря на то, что многие онлайн-источники утверждают, что он не поддерживает все SSB. Если оставить это здесь, чтобы поиск мог привести к появившемуся диалогу.

Похоже, что SqlDependency опирается на уведомления о запросах. В свою очередь уведомления о запросах зависят от компонента Service Broker. Компонент Service Broker не поддерживается в SQL Server Express. На этой странице нет явного списка уведомлений о запросах:

http://msdn.microsoft.com/en-us/library/cc645993(SQL.100).aspx

Но оттуда вы можете видеть, что компонент Service Broker поддерживается Express как * клиент * только 1010 *, а со следующей страницы видно, что компонент Service Broker является зависимостью (без каламбура):

http://msdn.microsoft.com/en-us/library/ms130764(v=SQL.100).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...