2部分Windows应用程序:“Windows服务”+ GUI配置它

时间:2014-02-19 09:06:14

标签: c# windows

我正在开发一个由两部分组成的Windows应用程序:
代理人,在后台运行。
带有窗口的主应用程序,用于启动/停止代理并对其进行配置。

我的理解是我应该为代理商使用“Windows服务” 但是我不确定这应该怎么打包? (我可以将这两个部分放在同一个.exe中吗?)
代理和主应用程序如何通信(我应该使用共享文件吗?我的代理可以使用私人文件夹吗?)

我正在寻找一些基本的建筑建议

2 个答案:

答案 0 :(得分:2)

将代理作为服务运行可能是最好的方法。它将在没有任何人需要登录才能运行的情况下运行,而Windows则为服务提供广泛的监控支持。您可以使用sc命令来安装,启动和停止服务,如果您拥有适当的权限,它甚至还支持在其他计算机上控制服务。

为了让你的gui与之通信,你可以看看使用WCF。它允许您将服务的交互定义为C#类,这将使您不必担心检查共享目录或查看共享文件等。这种方法还可以使同时支持多个客户端变得容易,同时类似共享文件夹的方法会使这很困难。

答案 1 :(得分:1)

您需要分离.exe文件,一个用于服务,一个用于Windows应用程序。您可以在Visual Studio中打包这两个独立的MSI,这样做的好处是,如果您需要移动服务(无论出于何种原因),那么您也不会打包Windows应用程序并将其保留在安装服务的位置。 / p>

有许多方法可以让他们在没有大规模复杂的情况下进行沟通。你可以按照你的建议从文本文件中读取,但这可能会导致锁定问题。当我必须做类似的事情时,我在SQL(或您希望的任何品牌的数据库)中创建了一个简单的数据库,并将Windows App插入/更新配置选项添加到表中,然后该服务读取表得到它的设置。