c# – sql依赖如何用于来回传递数据
1)我想知道sql server如何在客户端和服务器之间建立一个通道. D b.我想必须有一个频道,为什么sql server可以通过该频道向客户端发送通知.请详细讨论这个问题.因为我看到很多关于sql依赖的文章,但每个机构都给出了代码,但没有机构解释它是如何工作的细节.
什么是服务经纪人? Service Broker体系结构允许您构建松散耦合的SQL Server实例,以便实例使用正常的消息传递方式相互通信. Service Broker使用TCP / IP从网络传输消息,因此允许加密消息传递.它既适用于使用SQL Server实例的应用程序,也适用于将工作分配到多个SQL Server实例的应用程序. Service Broker允许使用Queue来保存消息,因此消息将被逐个处理,而调用者无需等待接收消息. 1)我想知道服务代理总是以加密格式传递消息? 2)Service Broker允许使用Queue来保存消息.服务代理使用的队列名称是什么.我如何才能看到该队列中存储的内容? 3)我看到很多人创建队列,但没有提到他们创建的原因?他们也没有在代码中使用该队列.这是一个网址和示例代码 http://www.dreamincode.net/forums/topic/156991-using-sqldependency-to-monitor-sql-database-changes/ CREATE QUEUE NameChangeQueue; CREATE SERVICE NameChangeService ON QUEUE NameChangeQueue ([http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification]); GRANT SUBSCRIBE QUERY NOTIFICATIONS TO YourUserName; ALTER DATABASE YourDatabaseName SET ENABLE_BROKER; 他们从不使用NameChangeQueue队列为什么?我怎么知道谁将使用这个队列? 4)即使我看到人们创造角色但却不知道为什么在这种情况下需要角色? 所以请详细讨论我的所有要点,因为我需要了解所有要点.谢谢 解决方法
首先阅读
The Mysterious Notification以了解查询通知的工作原理. SqlDependency只是一个利用查询通知的.Net包装器.这应该回答你的大部分问题.
查询通知使用Service Broker(SSB)将通知本地传递到数据库中的队列.虽然SSB可以加密流量,但这与SqlDependency无关,因为在服务器进程内交付是本地的.客户端应用程序通过使用普通SqlConnection在队列上发布 在您发布的示例中,确实从未使用过NameChangeQueue.通过使用SqlDependency对象,作者实际上在调用SqlDependency.Start()时正在使用临时部署的临时队列.作者可以使用Using SqlNotificationRequest to Subscribe to Query Notifications中描述的较低级别的SqlNotificationRequest,它允许您指定要使用的队列. 所需的权限在Query Notification Permissions中描述,但如果使用SqlDependency,则还需要权限来创建SqlDependency使用的临时队列和存储过程. 阅读链接的文章,如果您有更多问题,请在此处提出新问题(请不要发表更多问题作为评论). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |