声明'接收MSG'此版本的SQL Server不支持。对于azure db

时间:2016-10-08 05:21:30

标签: asp.net-mvc-4 azure azure-sql-database signalr-hub

我正在使用与http://techbrij.com/database-change-notifications-asp-net-signalr-sqldependency类似的SignalR和SqlDependency在我的MVC应用程序中尝试数据库更改通知

我在Global.asax Application_Start()方法上遇到错误"' RECEIVE MSG'此版本的SQL Server不支持。"

protected void Application_Start()
    {
        SqlDependency.Start(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString); // Error Here
        AreaRegistration.RegisterAllAreas();

        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }[![enter image description here][1]][1]

Error details

2 个答案:

答案 0 :(得分:3)

SQLServerDependency似乎需要SQL Server Service Broker才能运行。

虽然Service Broker不再显式包含在list of SQL Server features not currently supported in Azure SQL Database中,但用于创建和管理Service Broker的T-SQL命令(例如CREATE SERVICE)在Azure SQL数据库中被标记为不受支持。

要在Azure中使用SignalR,您需要设置在VM上运行的完整SQL Server实例。

答案 1 :(得分:0)

这是因为Azure SQL数据库中不支持Service Broker。在您引用的文章中,它在数据库设置部分中提及," 1。我们需要在我们的数据库(TechBrijDB)上启用Service Broker。"。因此,您需要首先在数据库上启用Service Broken以使代码正常工作。您可以对此功能请求here进行投票。

或者,您可以使用Azure SQL VM代替。您可以在this article中找到它们之间的区别。

希望这有帮助。