Уведомление SqlDependency - немедленное уведомление о неудаче после выполнения запроса

У меня проблема, я пытаюсь настроить уведомления SqlDependency для получения уведомлений об изменении данных в таблице на sql sever. Однако, как только я выполняю запрос, который я использую для настройки sql-зависимости, сразу же приходит уведомление о том, что попытка подписки не удалась из-за проблемы с sql-заявлением (SqlNotificationEventArgs показывает Info: Invalid, Source: Statement, Type: Subscribe)

Это указывает на то, что существует проблема с sql-запросом, но попробовав очень простой пример, чтобы убедиться, что это не проблема с оператором select, я все еще получаю эти "недействительные" уведомления немедленно. Я также убедился, что запустил брокер служб SQL Server, создал очередь и службу уведомлений и предоставил все необходимые разрешения принципалу (в данном случае пользователю, с которым я подключаюсь к sql-серверу). Вот моя таблица:

CREATE TABLE [dbo].[TableTest](
    [id] [int] NOT NULL,
    [val1] [int] NULL,
    [val2] [int] NULL,
   CONSTRAINT [PK_TableTest] PRIMARY KEY CLUSTERED ( [id] ASC )
) WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, 
        ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

вот код:

 SqlDependency.Start(connectStr);
 _connection = new SqlConnection(connectStr);
 _connection.Open();
 _sqlCommand = new SqlCommand("Select [id] from TableTest", _connection);
 _sqlCommand.Notification = null;
 SqlDependency dependency = new SqlDependency(_sqlCommand);
 dependency.OnChange += this.OnDataChangeNotification;

 DataTable dt = new DataTable();
 dt.Load(_sqlCommand.ExecuteReader());

После вызова '_sqlCommand.ExecuteReader()' сразу же вызывается обработчик OnDataChangeNotification с параметром SqlNotificationEventArgs, показывающим Info:Invalid, Source:Statement, Type:Subscribe.

Кто-нибудь знает, в чем может быть проблема или как определить/отладить ее (без использования SQL профайлера, которого у меня сейчас нет).

8
задан EBarr 16 May 2012 в 00:26
поделиться