1

我有 3 个独立的 Windows 服务项目,它们做的事情完全相同。唯一的区别是每个项目文件在 app.config 中都有不同的连接字符串设置。我计划整合服务项目以使其更易于管理。最好的方法是什么?

当前场景:

3 win services > 每 6 分钟执行一次 > 点击 3 个不同的数据库 > 收集数据 > 生成 XML > 将 XML 发送到 FTP。

预期结果:

1 win 服务 > 每 6 分钟执行一次 > 点击 3 个不同的数据库 > 收集数据 > 生成 XML > 将 XML 发送到 FTP。

4

1 回答 1

1

所以他们都做同样的事情,但有不同的连接字符串 - “简单”。

在您的配置中,在“模式”或相同的配置中创建一个新的应用程序设置,并用逗号分隔值,例如:

<configuration>
    <appSettings>
        <add key="schema" value="connection1, connection2, connection3"/>
    </appSettings>
</configuration>

然后确保您在架构应用程序设置键中的每个连接都有一个键

<connectionStrings>
    <add name="connection1" connectionString="your_connection_string" providerName="the_providor"/>
    <add name="connection2" connectionString="your_connection_string" providerName="the_providor"/>
    <add name="connection3" connectionString="your_connection_string" providerName="the_providor"/>
</connectionStrings>

在您的 OnStart 中执行以下操作 - 请记住需要放入睡眠或线程迭代,但您明白了:

protected override void OnStart(string[] args)
{
    string[] schemaList = ConfigurationManager.AppSettings["schema"].Split(",".ToCharArray());

    foreach (string schema in schemaList)
    {
        // do your stuff...
    }
于 2013-01-09T16:46:53.443 回答