SqlDependencyCache использует SqlDependency, а SqlDependency развертывает во время выполнения набор служб, очередей и хранимых процедур в вашей базе данных как часть своей инфраструктуры. Вы можете прочитать эту статью более подробно, что на самом деле происходит Таинственное Уведомление .
Когда вы создаете поставщика карты сайта, вы указываете строку подключения. Эта строка соединения указывает либо логин и пароль SQL, либо указывает, что должна использоваться аутентификация SSPI (или Trusted, или Integrated). Если указаны имя пользователя и пароль, этот пользователь используется для входа в базу данных вашего приложения (база данных ASP). Когда используется SSPI, соединение устанавливается с использованием идентификатора потока ASP, который является либо идентификатором пула приложений, либо идентификацией олицетворенного пользователя. Какой бы логин ни использовался, он должен иметь привилегии, необходимые для развертывания инфраструктуры SqlDependency (создать очередь, создать службу, создать хранимую процедуру). Самый простой способ - просто сделать этого пользователя входа в базу данных членом роли db_owner (что является правильной формулировкой для того, что в статье называется «привилегии dbo»).
Таким образом, в зависимости от строки соединения yoru, удостоверения вашего пула приложений и ваших настроек олицетворения, пользователь базы данных, который соответствует имени входа, используемому поставщиком карт, должен быть добавлен в роль db_owner. Я не могу сказать , что вам нужно сделать, потому что все зависит от переменных факторов, перечисленных выше.