【问题标题】:C#: Hosting a Windows ServiceC#:托管 Windows 服务
【发布时间】:2016-01-31 18:14:35
【问题描述】:

我写完了windows服务。我的服务所做的是它调用另一个服务并从该服务中提取一些数据。代码工作正常,因为我在调试时检查了它(用于调试服务的进程选项)。

现在我必须在实际服务器上托管服务。我可以使用命令 InstallUtil.exe 托管服务,但我的问题是这个 Windows 服务将如何在实际服务器上运行?我知道有一个 OnStart() 方法,但是每秒都会调用一次吗?我不知道...

我的期望是我的 Windows 服务应该总是调用其他用代码编写的服务来检查它是否可以从该服务下载数据(如果有的话)?

我怎样才能做到这一点?请帮忙!!我错过了什么吗?

【问题讨论】:

  • 窗口服务什么时候会调用另一个服务?在什么条件下?
  • 每次启动windows服务时都会调用OnStart

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


【解决方案1】:

OnStart仅在windows服务启动时调用。

你不应该在这个方法中做太多事情,因为操作系统希望这个调用快速返回(我认为默认是 30 秒或类似的时间)。

您想要在 OnStart 方法中执行的操作是创建一个每 X 秒或每分钟运行一次的计时器来完成实际工作。

另一种选择是在此方法中启动一个新线程(或长时间运行的Task)。这样的线程或Task 实际上会有一个循环并完成您需要做的工作。

【讨论】:

  • 非常感谢您的解释!!
猜你喜欢
  • 2012-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-06
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多