【问题标题】:Change the Values of the app config file in a windows service through another program通过另一个程序更改 Windows 服务中的应用程序配置文件的值
【发布时间】:2014-10-19 19:03:36
【问题描述】:
我有一个 Windows 服务,它从 SFTP 下载一些文件并将其上传到数据库并从该数据生成 PDf。所以现在当我应该将可执行文件提供给我的客户时,我认为他需要更改应用程序配置文件,如 sftp 详细信息和 pdf 路径。所以我只是在考虑像 Windows 窗体或控制台这样的程序,它读取输入并将其保存在应用程序配置文件中。是否有可能,顺便说一句,我为 Windows 服务创建了一个安装项目,他在其中获得 2 个文件 .msi 文件和安装文件。在这种情况下是否有可能实现上述问题?
【问题讨论】:
标签:
windows-services
app-config
【解决方案1】:
如果我理解正确,您需要某种 UI 应用程序,允许用户配置 Windows 服务的操作。这当然是可能的,因为我已经这样做了好几年了。但是,您不希望通过 app.config 文件执行此操作。 Windows 服务启动时会读取 app.config 文件,因此对其所做的任何更改都不会被注意到,直到服务重新启动。更好的做法是通过Windows Communication Foundation(或其他一些 ICP 机制,例如管道、套接字、共享内存等)将更改传达给服务。我已经成功地使用了它,虽然老实说,我现在使用的是普通的套接字。在任何情况下,服务基本上都会“侦听”传入的配置消息,“读取”这些消息,然后相应地“配置”自身,甚至可能将更改保存在其 app.config 文件中,以便在服务时保留更改稍后重新启动。
HTH