错误 :在没有提供选项值的情况下使用 SqlDependency 时
本文关键字:情况下 SqlDependency 选项 错误 | 更新日期: 2023-09-27 18:33:47
我正在处理查询通知。我已经在我的数据库中创建了队列、服务和路由。我正在通过IP地址访问我的网络数据库,所以我在Sql Server中创建了一个路由,如下所示。
ALTER ROUTE [NotificationMessagesRoute]
WITH SERVICE_NAME = N'MyNotificationService' ,
ADDRESS = N'TCP://myIPAddress:PortNo' --
在前端,它使用了这样的SqlDependency
SqlDependency dependency = new SqlDependency(command), "Service=MyNotificationService;local database=Test", int.MaxValue);
如果我使用本地连接字符串并在 Sql Server 中路由为本地,它的工作非常完美,但是如果我在我的组织本地网络上访问数据库,它不会向我显示有关新插入的通知。
我也使用了如下的 SqlDependency 对象,但它在错误下方给了我。
SqlDependency dependency = new SqlDependency(command);
错误:当使用SqlDependency 而不提供选项值时,必须在执行添加到 SqlDependency 实例的命令之前调用 SqlDependency.Start((。
请帮忙...
在启动类中添加启动依赖项
System.Data.SqlClient.SqlDependency.Start(ConnectionString);
您需要
通过运行以下查询来设置数据库的ENABLE_BROKER
:
ALTER DATABASE [your_database_name] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
>SqlDependency
只在本地工作,因为它会继续为您部署目标服务、队列和激活的过程。如果要在远程方案中部署,则需要使用更基本的SqlNotificationRequest
。您必须在应用程序中自行部署所需的目标服务。请参阅使用 SqlNotificationRequest 订阅查询通知。
我希望你确实了解远程路由在其目标处需要另一个 SQL Server 实例,而不是你的应用,并且你必须正确设置终结点和对话安全性,请参阅 Service Broker 通信协议。你的方案不太可能需要远程路由。