【问题标题】:How to implement WCF Service which does polling or checking database after a certain time interval如何实现在一定时间间隔后轮询或检查数据库的 WCF 服务
【发布时间】:2013-11-26 12:31:00
【问题描述】:

我有一个要求,我想实现一个 WCF 服务,该服务在一定时间间隔后检查数据库列的状态,比如说 20 分钟,如果此状态为真,我想执行一些操作,否则执行一些其他操作。 那么是否可以使用 WCF 服务实现所需的功能,如果可以,请指导我应该如何实现,因为我不知道该怎么做。

如果不可能,请向我推荐一些好的选项,例如(Web 服务、Windows 服务等)。 请提供我可以找到解决此问题的方法的示例代码或一些好的链接。 我希望此服务始终在我的 PC 上运行并在 10-20 分钟后检查状态。 我对 C# 更满意,所以如果它可以在 C# 中完成,那就太好了。 否则也不是问题。 我有 Windows 电脑

【问题讨论】:

  • 基本上我正在开发 ASP.net Web 应用程序,这个应用程序需要这个功能

标签: c# wcf web-services service windows-services


【解决方案1】:

你描述的是Windows Service。在后台运行的任务,即使没有活动用户登录,也会定期执行代码。查找有关 Windows 服务的教程,可能从用于构建的 Visual Studio 模板开始。

【讨论】:

  • 不能通过创建一个计划的控制台客户端应用程序来完成,该应用程序正在消耗在服务器上运行的 WCF 服务?
  • 我看不出这会有什么帮助。控制台应用程序需要在用户上下文中运行,并且用户可能想在晚上离开。在这种情况下,我也看不到您需要 WCF 服务来做什么。你可以做到...它只是没有比更简单的 Windows 服务解决方案带来任何好处。
【解决方案2】:

我认为您错过了 WCF 的概念,只看到“服务”一词。 WCF 服务用于从远程机器调用服务器上的一些代码。它不应该自己做任何工作。仅在调用时。 根据您的描述,您应该创建一个 Windows 服务,它应该有一个循环。它将查看已经过去了多少时间并执行您的操作。

【讨论】:

  • 感谢您的回复 我可以用 C# 实现 Windows 服务吗?
  • 当然,Visual Studio 中有内置模板
  • 不完全是 Windows 服务中的循环,而是 Timer 对象
  • 不能通过创建一个计划的控制台客户端应用程序来完成,该应用程序正在消耗在服务器上运行的 WCF 服务?
【解决方案3】:

有两种常见的选择: 1) 窗口服务 2) AppFabric 中的长时间运行服务

根据生产环境,第二个可能不可接受。但它有真正的好处:

1) 您不需要管理员访问服务器

2) 你可以使用 FTP/Web Deploy 发布

3) 你在 IIS 中运行服务,所有的缺点和优点

【讨论】:

  • 不能通过创建一个计划的控制台客户端应用程序来完成,该应用程序正在消耗在服务器上运行的 WCF 服务?
  • 可以,但是你需要一直运行 RDP,这不是优雅的解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-03
  • 1970-01-01
  • 2020-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-18
相关资源
最近更新 更多