此版本的 SQL 服务器不支持语句 'RECEIVE MSG'。对于天蓝色数据库

Statement 'RECEIVE MSG' is not supported in this version of SQL Server. for azure db

我正在尝试在我的 MVC 应用程序中使用类似于 http://techbrij.com/database-change-notifications-asp-net-signalr-sqldependency

的 SignalR 和 SqlDependency 的数据库更改通知

我在 Global.asax Application_Start() 方法上遇到错误“此版本的 SQL 服务器不支持 'RECEIVE MSG'。”

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]

看来 SQLServerDependency 需要 SQL 服务器 Service Broker 才能运行。

虽然 Service Broker 不再明确包含在 list of SQL Server features not currently supported in Azure SQL Database, T-SQL commands for creating and managing Service Broker, such as CREATE SERVICE 中,但在 Azure SQL 数据库中被标记为不受支持。

对于 Azure 中的 SignalR 用户,您需要在 VM 上设置 SQL 服务器 运行 的完整实例。

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

或者,您可以使用 Azure SQL VM instead. You can find the difference between them in this article

希望对您有所帮助。