2

我很好奇 C# gui 访问 Windows 服务功能的最佳方式,无论是 WCF 或 ServiceController 还是其他选项。

我将解释我在做什么:在规定的时间间隔内,该服务将从位置 A 压缩一小时的数据文件并将压缩文件发送到位置 B,这将在后台 24/7 或直到服务被用户停止并运行,即使没有人登录(因此需要服务)我希望用户能够启动一个 GUI 程序,该程序将允许他们有几个选项:

1) 将位置更改为 zip 从
2) 将位置更改为 zip
3) 手动启动指定日期时间范围的压缩过程

现在大多数压缩和计时器的功能都存储在服务中。所以我想知道GUI程序中的ServiceController是否允许我向/从服务发送变量(即文件夹路径名称作为字符串,各种其他数据),或者我是否需要花时间制作WCF并将GUI视为客户端和 Windows 服务作为源。

应该注意的是,GUI 可能会从服务接收数据,但仅表明它当前是否正忙于压缩。

4

2 回答 2

4

一种选择是在 Windows 服务中嵌入 WCF 服务。使用此 WCF,您可以在不重新启动服务的情况下控制行为。

但 IMO 最好的选择是将它放在配置文件中。您可以添加一些密钥,但在更新配置时必须重新启动服务。在这种情况下,您可以尝试一种解决方法,如在此线程中。配置是这种细节的好地方,因为它可以很容易地修改,并且与数据库不同,它总是可用的。

于 2013-08-08T18:46:03.043 回答
0

我不完全理解您要说什么,但是您在制作时定义了服务的接口是什么。如果您定义的操作包含变量,那么您可以将数据从应用程序传递到服务。

根据您的描述,只需在服务中进行操作以执行您列出的这 3 件事,然后通过单击 UI 代码中的按钮调用这些操作。

WCF 会很好,这是对它的基本介绍http://msdn.microsoft.com/en-us/library/bb332338.aspx

于 2013-08-08T18:58:46.140 回答