加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

配置 – 为Windows服务保留用户可编辑设置的最佳方法是什么?

发布时间:2020-12-14 01:36:20 所属栏目:Windows 来源:网络整理
导读:我正在开发一个将作为 Windows服务实现的应用程序,我想知道处理不同设置(在用户和应用程序级别)的最佳方法.问题是,我并不完全熟悉所有可用的选项,所以原则上我喜欢.NET自己的System.Configuration(ConfigurationManager.RefreshSection(“appSettings”)似乎
我正在开发一个将作为 Windows服务实现的应用程序,我想知道处理不同设置(在用户和应用程序级别)的最佳方法.问题是,我并不完全熟悉所有可用的选项,所以原则上我喜欢.NET自己的System.Configuration(ConfigurationManager.RefreshSection(“appSettings”)似乎很诱人),虽然我还是无法绕过整个画面,即为给定服务存储app.config文件的位置,依此类推.

所以我的问题是,对于给定的Windows服务,存储用户可编辑配置详细信息的最佳方法是什么?提前感谢大家的反馈.

解决方法

嗯…… Windows服务的“用户可编辑”配置设置……

要记住的是Windows服务在后台运行,因此用户无法直接与其进行交互.我为解决这个问题所做的是创建一个单独的前端应用程序,使用WCF与Windows服务进行通信.这样,“用户可编辑”配置设置将作为前端应用程序设置的一部分而不是Windows服务保留.当用户更改设置时,使用一系列WCF消息将设置简单地传达给Windows服务.

在我的情况下,我甚至在我的前端应用程序中添加了NotifyIcon并添加了逻辑,以便在最小化时可以从任务栏中删除应用程序.当您打开“最小化时隐藏”选项时,它的工作方式与任务管理器的工作方式相同.这为用户提供了直接与服务交互的假象,即使它是两个完全独立的过程.

编辑:

在回复您的评论时,WCF只是一个消息传递API.消息通常定义为使用DataContract和DataMember属性修饰的类. ServiceContract和OperationContract属性定义WCF服务接口.一旦定义了这些,就可以轻松地在Windows服务中创建和托管WCF服务.如果你有Visual Studio 2008,那么创建客户端代理就很容易,因为VS2008可以为你自动化它.

完成所有这些后,您的前端应用程序只需实例化客户端代理的实例并调用该代理上的方法.在调用每个方法时,WCF框架负责序列化并将消息发送到WCF服务以使其作用.然后,它将任何响应(包括异常)序列化回代理.从客户端(例如,您的前端应用程序)的角度来看,您只需调用一个函数.这就是WCF的美丽!它与套接字编程非常类似,除了您不必管理连接. WCF为您处理所有管道.

当然,所有这些都假设您至少可以使用.NET 3.0.如果您使用的是Visual Studio 2008,那么您的状态良好.以下是一些帮助您入门的教程:

> WCF Essentials
> WCF Services

一旦你掌握了基本概念,我建议你看一下Juval Lowy的website.我发现有很多免费的WCF相关下载,我觉得它很有用,虽然它有点先进.在深入研究WCF概念之前先了解它们.

同样,这一点的重点是帮助您的用户配置Windows服务的各个方面.如果您没有提供前端GUI来执行此操作,我不确定他们如何做到这一点,而不是手动操作app.config文件本身.

希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读