繁体   English   中英

如何在应用程序和Windows服务之间共享相同的设置(或配置)(即使它们在不同的PC上运行)

[英]How to share the same settings (or configuration) between apps and windows services (even if they run in different PCs)

我正在用C#开发一个很大的解决方案。 一些项目是.NET Framework 4.0(大多数),其他项目是.NET Framework 4.6.2。

此解决方案具有WinForm应用程序和Windows服务。

我的问题是所有这些应用程序共享数据库连接字符串,服务器的IP等,我必须修改其每个配置文件以更新所有这些配置设置。

我还要加密这些设置,以禁止用户修改它们。

我想使用Windows的注册表,或加密的SQL lite数据库,或使用Web API接口的其他Windows服务事件来询问每个设置。

你推荐我什么?

顺便说一下,所有这些程序都将安装在不同的PC上,所以我必须将这个解决方案用于所有这些PC,或者我可以只在一台PC上进行所有设置。

你有什么建议我的?

如果您需要在不同的计算机之间同步这些信息,那么您需要某种集中式服务来执行此操作。

一个想法是Apache Zookeeper

ZooKeeper是一种集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务。 所有这些类型的服务都以分布式应用程序的某种形式使用

我担心的可能是Zookeeper可能对你的项目来说太多了,因为它是为分布式应用程序设计的,虽然你可以将它部署在一个节点上,但它可能有点过分。

我几乎不推荐使用Web API接口。 如果使用Web API,则可以更改存储设置的方式,只需更改Web API后端即可。 获取设置的方法可以保持不变,您不必更改消费应用或服务中的任何内容。

如果要直接连接到数据库,则必须在每个应用程序中至少存储该数据库的连接字符串,如果它正在更改,则必须更新所有使用者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM