Azure SQL server error Statement 'RECEIVE MSG' is not supported in this version of SQL Server

耗尽温柔 提交于 2019-12-12 18:02:16

问题


I have used SQLdependency with SignalR to show alerts to users.. The code is as follows:

public IEnumerable<AlertInfo> GetData(long UserId)
{
    using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["yafnet"].ConnectionString))
    {
        connection.Open();
        using (SqlCommand command = new SqlCommand(@"SELECT [AlertID],[AlertNote],[AlertDetails],[AlertDate],[Location]
      FROM [dbo].[Alerts] where [UserID]=" + UserId + " AND [IsViewed]=0", connection))
        {
            // Make sure the command object does not already have
            // a notification object associated with it.
            command.Notification = null;
            SqlDependency.Stop(ConfigurationManager.ConnectionStrings["yafnet"].ConnectionString);
            SqlDependency.Start(ConfigurationManager.ConnectionStrings["yafnet"].ConnectionString);

            SqlDependency dependency = new SqlDependency(command);
            dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);

            if (connection.State == ConnectionState.Closed)
                connection.Open();

            using (var reader = command.ExecuteReader())
                return reader.Cast<IDataRecord>()
                    .Select(x => new AlertInfo()
                    {
                        AlertID = x.GetInt64(0),
                        AlertNote = x.GetString(1),
                        AlertDetails = x.GetString(2),
                        AlertDate = x.GetDateTime(3),
                        Location = x.GetString(4)
                    }).ToList();
        }
    }
}

It is working fine on localhost. But after uploading to Azure server, this method throws the following error:

Message":"An error has occurred.","ExceptionMessage":"Statement 'RECEIVE MSG' is not supported in this version of SQL Server.","ExceptionType":"System.Data.SqlClient.SqlException","StackTrace":" \r\nServer stack trace: \r\n at System.Data.SqlClient.SqlConnection.OnError(SqlException exception , Boolean breakConnection, Action`1 wrapCloseInAction)

What could be the issue?


回答1:


Actually your SQL Server database must have is_broker_enabled = 1. You need to check whether it's enabled or not.

To verify this, use the command SELECT name, is_broker_enabled FROM sys.databases. If your database shows result "1" it's okay and if "0" then you must enable it using this command ALTER DATABASE yourdb SET ENABLE_BROKER.

But the bad news is Azure SQL database shows it enabled but it no longer supports is_broker_enabled.

To do this, you need to install the full instance of SQL Server to Azure VM.



来源:https://stackoverflow.com/questions/33693020/azure-sql-server-error-statement-receive-msg-is-not-supported-in-this-version

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!