-1

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

请立即告知:

  1. 为每个客户端部署服务是一个好习惯吗?(即 50 个客户端的 50 个服务)。想象一下计算机管理>服务中的服务列表

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

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

4

1 回答 1

0

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

  • Windows 服务始终处于打开状态。在此服务中,您需要使用Timer之类的东西实现调度机制,如果需要,您还可以在 Windows 服务中实现作业引擎,以便客户端在不同线程上为客户端处理任务
  • 我不明白为什么每个客户都需要一个单独的数据库。这不是数据库的重点,通常您会使用单个 SQL Server 实例和数据库来存储所有数据,并实现表结构,以便您可以将任何给定的数据记录与用户相关联。
  • 因此,我不会为每个客户端部署一个服务,而是一个带有单个数据库的单个服务

顺便说一句,大多数 Visual Studio .net 项目(当然还有 Windows 服务项目)使您能够使用用于应用程序配置的 app.config 文件(或 Web 项目的 web.config 文件)——这应该是具有无需重新编译即可更改的通用配置的首选。这通常是项目的一部分。

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

于 2013-05-15T12:54:09.733 回答