Windows Serviceとして実行したいアプリケーションがあります。この MSDN doc ページ( WCFサービスをホストする必要があるため、手順ではこの部分についても詳しく説明しています) に記載されている手順に従って、それを行うことができ、サンプル サービスを実装すれば問題ありません。ユーティリティを使用installutil.exe
して、アプリケーションを Windows サービスとしてインストールおよびアンインストールできます。
私の問題
ただし、ローカル マシンに同じアプリケーションのサービスをさらにインストールする必要があります。だから私はそれらに異なる s を与える必要がありますSystem.ServiceProcess.ServiceBase.ServiceName
! したがって、インストール コードをもう一度検討してください。
[RunInstaller(true)]
public class ProjectInstaller : Installer {
private ServiceProcessInstaller process;
private ServiceInstaller service;
public ProjectInstaller() {
process = new ServiceProcessInstaller();
process.Account = ServiceAccount.LocalSystem;
service = new ServiceInstaller();
service.ServiceName = /* NEED TO PUT HERE THE NAME!!! */;
Installers.Add(process);
Installers.Add(service);
}
}
呼び出すときにサービスの名前を渡す方法はありinstallutil.exe
ますか? この問題にどのようにアプローチしますか?App.Config
また、ファイルを使用して、次のようなことを試みました。
public ProjectInstaller() {
process = new ServiceProcessInstaller();
process.Account = ServiceAccount.LocalSystem;
service = new ServiceInstaller();
service.ServiceName = System.Configuration.ConfigurationManager.
AppSettings["SrvName"];
Installers.Add(process);
Installers.Add(service);
}
しかし、もちろんうまくいきませんでした。このファイルは、アプリケーションの実行時に呼び出されます!!!