C# windows服务:从具有不同设置的不同服务器读取

C# windows服务:从具有不同设置的不同服务器读取,c#,.net,windows-services,C#,.net,Windows Services,场景: 从不同的服务器读取文件。每台服务器都提供不同的格式、扩展名和数据的文件 每个服务器的读取过程定期不同(每分钟、每小时、每周、每月) 应该有配置文件(或其他文件)来设置与“文件格式”、“文件扩展名”、“服务器凭据”相关的配置 我的实施: 我编写了一个应用程序,根据以下配置集读取这些不同的文件: interface IServer { // Common implementation } [ServerPath("anyLocation")] [FileDelimiter("

场景

  • 从不同的服务器读取文件。每台服务器都提供不同的格式扩展名数据的文件
  • 每个服务器的读取过程定期不同(每分钟、每小时、每周、每月)
  • 应该有配置文件(或其他文件)来设置与“文件格式”、“文件扩展名”、“服务器凭据”相关的配置

我的实施

我编写了一个应用程序,根据以下配置集读取这些不同的文件:

interface IServer
{
    // Common implementation
}

[ServerPath("anyLocation")]
[FileDelimiter(",")]
[FileSearchPattern("*.txt")]
class Server2 : IServer
{
    // Specific implementation
}

[ServerPath("anyLocation")]
[FileDelimiter("|")]
[FileSearchPattern("*.csv")]
class Server1 : IServer
{
    // Specific implementation
}
问题

  • 我应该使用windows服务来运行此应用程序吗
  • 我设置为属性的设置应该作为用户可以访问的设置存在,怎么办
  • 最重要的是,我不知道是否应该为每台服务器使用单独的服务,因为阅读时间可能会产生干扰(在这种情况下会发生什么?)。我还是喜欢单一服务

    • 我不会为此类问题创建windows服务

      创建一个简单的控制台应用程序,该应用程序接受推荐行参数以指定所需的目标(服务器),并从简单的App.config读取相应的配置,而不是将其硬编码到应用程序中


      使用计划任务运行您的控制台应用程序-这将为您提供细粒度的计划控制、内置监控和错误跟踪,而无需任何其他代码。

      thanx了解您的答案。我知道应该在配置文件中设置哪些设置,但我担心的是读取过程应该根据这些设置自动执行。windows服务、计划任务或其他自动化技术。出于其他原因,我们没有使用SSIS。SSIS听起来非常适合这种情况。无论如何,我不建议创建windows服务。。。除非你真的需要处理数百个不同的来源。如果需要企业级解决方案,还可以查看MS BizTalk server。它的架构基本上与您计划的服务所需的架构相同。可能是一个便宜的选择。