【问题标题】:Database change notifications to a windows service?数据库更改通知到 Windows 服务?
【发布时间】:2014-11-16 11:04:33
【问题描述】:

我正在使用WebAPI 将一些数据推送到数据库中。

WebAPI插入数据时,在同一服务器中运行的 Windows 服务必须得到通知

我见过this SO question,它建议使用Service BrokerSqlDependency,但这个问题似乎是很久以前提出的。

我用谷歌搜索,但找不到任何更简单的解决方案。我只想when a new data is inserted to Database, a function in the the windows service should fire

我们在WebAPI - Windows Services 上下文中是否有任何替代方案或非常相似的解决方案?

【问题讨论】:

  • Windows 服务能否定期轮询数据以进行更改?只是查找给定状态的记录?
  • @David:实际上,它将是time-critical。所以,polling 似乎不是一个好的选择。
  • 啊,在这种情况下,SqlDependency 似乎是可行的方法。不幸的是,我从未使用过它,所以我无法提供具体的建议。
  • SqlDependency/QueryNotifications 提供低延迟,无需连续轮询。在幕后,它会阻塞接收通知,并在超时后定期重复。
  • 你有这两个程序的源代码吗?在这种情况下,您可以使用Memory Mapped File

标签: c# .net sql-server asp.net-web-api windows-services


【解决方案1】:

有办法。我不是很喜欢它,但你可以使用 CLR 集成。
你可以用它来写一个触发器:https://msdn.microsoft.com/en-us/library/ms131045.aspx

它可以联系外部资源设置正确的权限:https://msdn.microsoft.com/en-us/library/ms345101.aspx

然后您可以通过套接字调用您的服务,或将其设为 Web 服务。但是你需要 c# 编程技能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多