2011-01-13 13 views
1

多くのWCFサービスをホストするために多数のWindowsサービスを作成する必要があるため、1つ(たとえば更新する)を停止してもう1つを実行することができます。C#異なるパラメータで同じWindowsサービスを登録する

私はWCFサービスごとにWindowsサービスを作成したくないので、Windowsサービスとして登録できるC#アプリケーションを作成しようとしていますが、異なるパラメータ(およびサービス名) 。例えば

このようにそれを呼び出す:私は、レジストリを直接編集するよりも、この他を行うための方法を見つけることができません

WcfService1 -> MyService.exe /run WcfService1.dll 
WcfService2 -> MyService.exe /run WcfService2.dll 

MyService.exe /install WcfService1.dll 
MyService.exe /install WcfService2.dll 

これは、これらのような二つの異なるWindowsサービスを作成します。

+0

私はあなたの問題が何であるかがわからないので、質問に従うことができません。私はあなたの質問を読んで、あなたはすでに解決策を持っています! –

+0

申し訳ありませんが私の問題は、C#を使用してパラメータを持つWindowsサービスを追加する方法を見つけることができないということです – Keeper

答えて

3

私はそれを行うためのよりよい方法を見つけました:SC.EXE

sc.exe create WcfService1 binPath= "MyService.exe /run WcfService1.dll"

ので、私はちょうどこのコマンドを起動するためのバット/ CMDを作成する必要があります。

0

その性質上、サービスは特定のことを処理するためのプロセスになるように設計されており、複数のインスタンスを持つのは一般的には良い考えではありません。しかし、あなたが望むことをすることは可能です。たとえば、一度に複数のSQL Serverインスタンスを実行できます。

thisがあります。基本的には、サービスインストーラにコマンドラインやその他の設定可能な引数を与えることができます。この引数は、Windowsとしてサービスとして登録する必要がある名前を指定します。これは通常、サービスインストーラとサービスの実行可能ファイルのプロパティに基づいて自動的に行われますが、これらのすべてを動的に設定することもできます。名前を変更すると、サービス登録が変更されます。サービスの名前は、サービスとして実行されている実行可能ファイルによって検査可能(AFAIK)である必要があります。これは、そのサービスが責任を持つWCFサービスに伝えることができます。

+1

私はあなたのポイントを取得しない:私は同じ正確なサービスを実行しようとしていないさまざまなパラメータで実行可能です(たとえば、Windowsではsvchost.exeを使用しています)。実際には、WCFホスティングサーバーを自分で実装することになります。 – Keeper

関連する問題