【问题标题】:How to know file copy is in progress and how to know a particular Windows service is running?如何知道文件复制正在进行以及如何知道特定的 Windows 服务正在运行?
【发布时间】:2013-04-30 11:25:00
【问题描述】:

在我们的应用程序中,我们使用的是 Windows 服务和 WCF 服务。应用程序的任务之一如下:

  1. 使用我们的管理网站在特定服务器位置复制客户端文件(大文件)。
  2. 我们有一个 Windows 服务,可以从服务器获取文件并将数据转储到数据库。
  3. WCF 服务在服务调用期间使用了这些数据。

我们需要解决以下情况

  • 如果正在进行文件复制,Windows 服务不应获取该文件。 如何识别?
  • 如果 widows 服务正在运行,并且在那一刻如果有任何服务请求,WCF 服务需要响应“windows 服务正在处理数据,所以请有时再发出请求”。 如何识别windows服务正在运行?

【问题讨论】:

  • 您想通知 Windows 服务中托管的 WCF 服务的调用方该 Windows 服务正在“运行”吗?来自 WCF 服务的任何响应都意味着 Windows 服务正在运行。这似乎很明显,您能否澄清一下您实际上要问的是什么?
  • 我已经编辑了这个问题。基本上我想知道两件事:1.有没有办法知道文件处理是否正在进行中。? 2. 有什么方法可以知道某个特定的 windows 服务是否在做它的处理?
  • 最好将其分成两个问题,因为它们是不相关的。

标签: c# wcf file-io windows-services


【解决方案1】:
If file copy is in progress windows service should not pick-up that file. 
How to identify that?

您可以使用.Net FileWatcher 类,可以找到有用的示例here

How to identify that the windows service is running

我认为您的 Windows 服务必须在操作系统启动时启动,
如果你想知道windows服务是否正在处理文件,你可以实现Singleton patternsample)或者使用Mutexsemaphore的Locking。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-17
    • 2015-05-12
    • 2013-09-19
    相关资源
    最近更新 更多