.net 在具有多个客户端的服务器上部署Windows服务

.net 在具有多个客户端的服务器上部署Windows服务,.net,deployment,configuration,windows-services,.net,Deployment,Configuration,Windows Services,我用C#开发了一个Windows服务,该服务具有按计划向用户发送电子邮件的功能。现在,将为大量实际访问同一服务器的客户机(例如,50台)部署此服务。显然,每个客户机在这个服务器上都有一个专用的数据库。 因此,它们的配置(如数据库连接字符串、运行服务的计划和时间间隔)会有所不同 请告知: 每个客户端部署服务是否是一种好的做法?(即50个客户端部署50个服务)。想象一下计算机管理>服务中的服务列表 我现在使用了一个单独的配置文件,它不是项目的一部分,因此不需要编译。我的服务现在从这个配置文件中读取,

我用C#开发了一个Windows服务,该服务具有按计划向用户发送电子邮件的功能。现在,将为大量实际访问同一服务器的客户机(例如,50台)部署此服务。显然,每个客户机在这个服务器上都有一个专用的数据库。 因此,它们的配置(如数据库连接字符串、运行服务的计划和时间间隔)会有所不同

请告知:

  • 每个客户端部署服务是否是一种好的做法?(即50个客户端部署50个服务)。想象一下计算机管理>服务中的服务列表

  • 我现在使用了一个单独的配置文件,它不是项目的一部分,因此不需要编译。我的服务现在从这个配置文件中读取,在这里可以很容易地进行更改。管理配置文件的最佳方法是什么


  • 我希望我能在stackoverflow上为我的第一个问题找到一些好的建议。谢谢

    我认为这不是正确的方法:

    • windows服务始终处于打开状态。在这个服务中,您需要实现一个调度机制,使用类似的东西,如果您需要,那么您还可以为客户端实现一个调度机制来处理不同线程上的客户端任务
    • 我不明白为什么每个客户端都需要一个单独的数据库。这不是数据库的重点,通常使用单个SQL Server实例和数据库来存储所有数据,并实现表结构,以便可以将任何给定的数据记录与用户关联
    • 因此,我不会为每个客户机部署服务,而是使用单个数据库部署单个服务
    顺便说一句,大多数visual studio.net项目(当然还有windows服务项目)都允许您(或web项目的web.config文件)配置应用程序,这应该是使用公共配置的首选,而不需要更改公共配置。这通常是项目的一部分


    对于这个模糊的问题,您不太可能让任何人提供代码示例或更多。你应该根据这些建议自己尝试一下,然后问这些问题(提供了相应问题指导的链接)。哦,欢迎来到SO。

    仍在等待一些建议。。。!实际上,应用程序本身是巨大的,我们为每个客户端制作DLL和数据库的副本,显然,因为每个客户端都有自己的用户集和其他数据。这项Windows服务是一项最新的实现,用于各种用途,如发送自动电子邮件、触发新事件、创建报告等(一切都是特定于客户端的)。因此,在给定的场景中,是否可以为所有客户机部署一个服务—从特定于客户机的数据库中拾取/更新数据?@NewTechie。当然,只要有一种基于您正在使用的客户机选择数据库的方法。正如我提到的,这基本上是一个工作引擎。有很多方法可以解决这个问题,您可以为每个客户端安装一个完全自包含的应用程序,也可以使用SaaS方法集中托管在一个实例上,供所有客户端使用。即使在您的场景中,这也是可能的。