LINQ to SQL и SqlDependency - PullRequest
       44

LINQ to SQL и SqlDependency

3 голосов
/ 21 июля 2010

Существуют ли последствия совместного использования SqlDependency и LINQ to SQL.Или мы должны позаботиться о некоторых вещах специально, чтобы заставить их работать должным образом?

В нашем приложении мы используем LINQ to SQL в качестве ORM, а бизнес-логика находится в хранимых процедурах.Мы кэшируем выходные данные SP и создаем SQLDependency.Всякий раз, когда вывод SP изменяется, кеш становится недействительным.

Наш код до сих пор работал нормально в Dev, Test и QA, но недавно он перестал работать в QA, и журналы предполагают, что ошибка происходит из SqlDependency.Start (ConnStr), который выполняется в файле global.asaxв блоке запуска приложения.

Ошибка выглядит следующим образом: Сообщение: При использовании SqlDependency без указания значения параметров необходимо вызвать SqlDependency.Start () до выполнения команды, добавленной в экземпляр SqlDependency.

НоЯ не понимаю, что когда SqlDependency.Start () уже запущен в Application Start, почему он генерирует исключение впоследствии, когда выполняются SP.

Может кто-нибудь пролить свет на эту проблему?

Ответы [ 2 ]

2 голосов
/ 21 июля 2010

Поскольку SQLDependency зависит от разрешений - изменились ли разрешения на сервере?

(Они, вероятно, не должны были - но они могут!)

1 голос
/ 30 апреля 2012

убедитесь, что все разрешения установлены правильно, ниже список всех необходимых разрешений, которые я применил, чтобы заставить его работать

-- Permissions  
GRANT CREATE PROCEDURE to [testUser] 
GRANT CREATE QUEUE to [testUser] 
GRANT CREATE SERVICE to [testUser] 
----

GRANT REFERENCES on CONTRACT::[http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification]
  to  [testUser]

GRANT RECEIVE ON QueryNotificationErrorsQueue TO  [testUser]
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO [testUser]


GRANT CONTROL ON SCHEMA::[dbo] TO [testUser]
GRANT IMPERSONATE ON USER::DBO TO [testUser]
...