C# 错误:使用SqlDependency而不提供选项值时

C# 错误:使用SqlDependency而不提供选项值时,c#,sql-server,service-broker,C#,Sql Server,Service Broker,我正在处理查询通知。我已经在数据库中创建了队列、服务和路线。我通过IP地址访问网络上的数据库,因此我在Sql Server中创建了一个路由,如下所示 ALTER ROUTE [NotificationMessagesRoute] WITH SERVICE_NAME = N'MyNotificationService' , ADDRESS = N'TCP://myIPAddress:PortNo' -- SqlDependency dependency = new SqlDepe

我正在处理查询通知。我已经在数据库中创建了队列、服务和路线。我通过IP地址访问网络上的数据库,因此我在Sql Server中创建了一个路由,如下所示

ALTER ROUTE [NotificationMessagesRoute]   
WITH  SERVICE_NAME  = N'MyNotificationService' ,  
ADDRESS  = N'TCP://myIPAddress:PortNo' --
SqlDependency dependency = new SqlDependency(command), "Service=MyNotificationService;local database=Test", int.MaxValue);
在前端,它使用了如下SqlDependency

ALTER ROUTE [NotificationMessagesRoute]   
WITH  SERVICE_NAME  = N'MyNotificationService' ,  
ADDRESS  = N'TCP://myIPAddress:PortNo' --
SqlDependency dependency = new SqlDependency(command), "Service=MyNotificationService;local database=Test", int.MaxValue);
如果我在Sql Server中使用本地连接字符串路由作为本地,它工作得很好,但是如果我在我的组织本地网络上访问数据库,它不会在新插入时向我显示通知

 SqlDependency dependency = new SqlDependency(command);
我还使用了SqlDependency对象,如下所示,但它给出了以下错误

 SqlDependency dependency = new SqlDependency(command);
错误:当使用SqlDependency而不提供选项值时,必须在执行添加到SqlDependency实例的命令之前调用SqlDependency.Start()


Plz Help…

SqlDependency
仅在本地工作,因为它可以为您部署目标服务、队列和激活的过程。如果要在远程场景中部署,则需要使用更基本的。您必须自己在应用程序中部署所需的目标服务。看


我希望您理解,远程路由在其目的地需要另一个SQL Server实例,而不是您的应用程序,并且您必须正确设置端点和对话框安全性,请参阅。您的场景不太可能需要远程路由。

在启动类中添加启动依赖项

System.Data.SqlClient.SqlDependency.Start(ConnectionString);

您需要通过运行以下查询为数据库设置
启用\u BROKER

ALTER DATABASE [your_database_name] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;

我想在我的本地网络上访问我的数据库,那么根据您的说法,什么是有效的通知解决方案..通知应该是本地的。阅读以了解它是如何工作的。