msHOWTO

7 Mart 2018 Çarşamba

SignalR ve SqlDependency ile Real Time Notification (Cannot find the object "QueryNotificationErrorsQueue" because it does not exist or you do not have permissions.)

Merhabalar,

Asp.Net MVC ile geliştirdiğiniz uygulama üzerinde SignalR ve SqlDependency kullanarak veri tabanınızdaki herhangi bir tablo üzerindeki verilerde herhangi bir değişiklik olduğunda real time olarak notification almak için gerekli tüm işlemler yaptığınızı, yazdığınız kodların local makinazında çalıştığını fakat veri tabanı connection bilgisini hosting üzerinde bulunan veri tabanı olarak ayarladığınızda aşağıdaki hatayı alıyorsanız eğer ;

"Cannot find the object "QueryNotificationErrorsQueue" because it does not exist or you do not have permissions."

yapmanız gereken aşağıdaki sql komutlarını çalıştırıp, oluşan SqlDependenct Role üne bağlantıda kullandığınız database user ı eklemeniz sorunu çözümlemenize yardımcı olacaktır.

CREATE ROLE [SQLDependency] AUTHORIZATION [dbo]
GO

CREATE SCHEMA [SQLDependency] AUTHORIZATION [SQLDependency]
GO

--Database level permissions
GRANT CREATE PROCEDURE to [SQLDependency];
GRANT CREATE QUEUE to [SQLDependency];
GRANT CREATE SERVICE to [SQLDependency];
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO [SQLDependency];
GRANT VIEW DEFINITION TO [SQLDependency];
GRANT SELECT to [SQLDependency]

--Service Broker permissions
GRANT REFERENCES ON CONTRACT::[http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification] TO [SQLDependency];
GRANT RECEIVE ON QueryNotificationErrorsQueue TO [SQLDependency];


Umarım faydalı olmuştur. Görüşmek üzere.