Ошибка SQL Service Broker - дескриптор диалога не найден
Я использовал брокер SQL Service и SQL Table Dependency и запустил зависимость таблицы SQL в таблице для уведомлений об изменении данных таблицы. Я дал все разрешения для базы данных, перечисленных в документе таблицы зависимостей SQL. Через некоторое время, возможно, в режиме ожидания он получает статус "Ожидание уведомления" .
Когда я изменяю в таблице (вставляя новую запись), статус не меняется (с момента ожидания уведомления) и выдает ошибку, поскольку "Дескриптор диалога"A705917C-4762-E711-9447-000C29C3FCF0"не найден" .
Может кто-нибудь помочь мне решить эту проблему?
1 ответ
Сначала прочтите этот комментарий, пожалуйста:
Существует один очень распространенный сценарий, который приводит к гораздо большему времени: отладка. Когда вы разрабатываете приложения, вы часто проводите несколько минут в отладчике, прежде чем двигаться дальше. Поэтому будьте осторожны, когда вы отлаживаете приложение, чтобы значение, назначенное параметру watchDogTimeOut, было достаточно длинным, иначе вы столкнетесь с уничтожением объектов базы данных в процессе отладочной деятельности. Ссылка
С другой стороны
Если вы используете SQLDependency
и получите ошибку вроде этого:
Описатель разговора "206A971D-6F25-DA11-B22F-0003FF6FCCCA" не найден. Неверное имя объекта 'SqlQueryNotificationService - 41136655-4314-4536-a477-37156eb628db'.
Тогда попробуйте включить trustworthy
:
Alter database [DbName] set trustworthy on
Свойство базы данных TRUSTWORTHY используется для указания того, доверяет ли экземпляр SQL Server базе данных и ее содержимому. По умолчанию этот параметр выключен, но его можно установить в положение ON с помощью оператора ALTER DATABASE. Дополнительная информация