2

多くの WCF サービスをホストするために多くの Windows サービスを作成する必要があるため、1 つのサービスを停止して (たとえば、更新するために)、他のサービスを実行し続けることができます。

私が持っているすべての WCF サービスに対して Windows サービスを作成したくないので、Windows サービスとして登録できる C# アプリケーションを作成しようとしていますが、パラメーターは異なります (もちろんサービス名も)。

たとえば、次のように呼び出します。

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

これにより、次のような 2 つの異なる Windows サービスが作成されます。

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

レジストリを直接編集する以外にこれを行う方法が見つかりません。

4

2 に答える 2

4

それを行うためのより良い方法を見つけました:sc.exe

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

したがって、このコマンドを起動するには、bat/cmd を作成するだけです。

于 2011-01-17T08:04:09.423 に答える
0

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

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

于 2011-01-13T16:45:06.040 に答える