2012-01-11 11 views
3

それぞれ異なるパラメーターで複数のインスタンスを実行できるWindowsサービスを開発したいと考えています。 理想的には、ブラウザベースのコントロールパネルでこれらのパラメータを維持したいと考えています。C#動的ファイルシステムウォッチャーサービス

私は、設定ファイルをXMLファイルに保存するC#でコントロールパネルを作成しました。 これから、実行するサービスの数とそのパラメータを設定する必要があります。 必要に応じてサービスのインスタンスを動的に追加したり削除したりできます。

私の質問は: 1)これも可能ですか? 2)コントロールパネルから特定のプロパティを持つサービスを起動できますか? (NET STARTでコマンドラインパラメータを使用しているかもしれませんか?

[編集] ServiceControllerクラスに関してオンラインで見たことがあります。サービスのインスタンスの追加と削除、サービスの開始/停止? [/編集]任意のヘルプ

答えて

3

編集用

ありがとう:私の最初の答えは間違っていた事実

あなたはでき使用コマンドラインパラメータ。 sのいずれかで、NET START(ただし、バックスラッシュで始まるパラメータのみ受け入れる)またはSC START(パラメータとして何かを受け入れる)のいずれかを使用します。 動的に選択されたコマンドラインパラメータでサービスを開始することはできません。サービス登録時にパラメータを指定することもできます。この場合、パラメータはその後も一定のままです。

しかし、サービスの複数のインスタンスを開始すると、間違った考えのように聞こえます。 実行時に通信するサービスのインスタンス(ServiceController.ExecuteCommandなど)をIMHOで行う必要があります。例えばHow to communicate with a windows service from an application that interacts with the desktop?How to create and communicate with a C++ Windows Service in Visual Studio 2010?

+0

を参照、サービスと通信する

は理にかなっています。しかし、このサービスはファイルシステムウォッチャーを使用しており、複数のフォルダーがあり、ファイルが表示されたときにそれぞれ異なるアクションを実行する必要があるため、複数が必要です。同じサービス内から複数のフォルダを見ることは可能でしょうか?だから私は方法を解決するために管理していない!ありがとう:) – CompanyDroneFromSector7G

+0

@bukko:まず、私の最初の答えは間違っていた(私はそれを修正しました)。第2に、もちろん、同じサービス内からいくつかのフォルダを見ることができます(たとえば、1つのフォルダを何度も見ているコードを使用するなど)。 – Jon

+0

あなたが言うように、最高のソリューションのように見える同じサービスに複数のウォッチャーを追加することができます。任意の数のウォッチャーをarrayListに追加するコードが見つかりました。しかし、私はそこにコードを置くことができないという点を除いて、論理的な場所はInitialzeComponentメソッドのように見えるかもしれないので、私はこのコードをどこに置くべきか分かりません。 – CompanyDroneFromSector7G