【问题标题】:connect ASP.NET web application to Windows Service application将 ASP.NET Web 应用程序连接到 Windows 服务应用程序
【发布时间】:2013-10-24 17:54:39
【问题描述】:

我有一个 Windows 服务应用程序和一个 ASP.NET Web 应用程序,它们都是由 C# 创建的。两个应用程序都从数据库(SQL 服务器)获取数据。

一旦我从 Web 应用程序更新数据库,我如何通知服务应用程序从数据库重新加载数据?

目前我们的解决方案是使用服务控制器重新启动 windows 服务应用程序。是否有任何低成本的解决方案,例如服务应用程序和 Web 应用程序之间的通信?

对了,我老板讨厌轮询方式……

如果 wcf 是一种选择,任何人都可以发布一些材料吗?

非常感谢!

【问题讨论】:

  • 我们使用了 msmq,只要有变化,Web 应用程序就会在队列中放入一条消息。并且只有当队列不为空时,Windows 服务才能重新加载数据.. 只需检查这是否适合您
  • 你的意思是windows服务应该继续检查msmq队列吗?这是一种投票方式吗?我的老板真的很讨厌……
  • 如果您在 Windows 服务中托管 WCF 服务,您可以添加一个通知端点,Web 应用程序将在更改时向其发送消息。 (您还可以在连接到 Web 应用程序的服务中使用 SignalR 客户端,以获取源自服务但让 Web 应用程序向服务发送消息的非轮询方法。
  • @Joe 谢谢。我提出了这个但被拒绝了......

标签: c# asp.net wcf


【解决方案1】:

您可以实现作为 Windows 服务运行的工作流服务。该服务必须具有可以通过 net.tcp 请求调用并处理您的请求的活动。我正在使用这个解决方案并且工作正常。 另一种方法是服务使用数据库检查是否需要执行重新加载。

【讨论】:

    【解决方案2】:

    您可以利用Service Broker

    简而言之:使用 SqlDependency 类,您可以在 C# 中连接一个事件,该事件将在表格更新时触发。此时,您可以重新加载新数据。

    【讨论】:

    • 你能告诉我更多细节吗?我应该持有哪个应用程序 SqlDependency 类,以及其他应用程序如何知道这些更改?谢谢。
    • 你试过搜索吗?这立即出现在此处的搜索中:stackoverflow.com/questions/5288434/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多