1

私はまったく同じことをする3つの別々のWindowsサービスプロジェクトを持っています。唯一の違いは、プロジェクトファイルごとにapp.configの接続文字列設定が異なることです。サービスプロジェクトを統合して、管理しやすくすることを計画しています。最善のアプローチは何ですか?

現在のシナリオ:

3つのwinサービス>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 に答える