トップ回答者
Windowsサービスのインストールのしかたがわからないのですが・・・

質問
-
環境はVS2005(C#), XP homeです。
職場でWindowsサービスも含まれたシステムの解析をしているので、Windowsサービスは
まだあまり詳しくないので自宅でテストしています。ちなみに職場で作業している環境は
VS2003ですが、ここでは2005として説明します。
1.VSの[ファイル]から新規のWindowsサービスを選択します。(ここではプロジェクト名をClientServiceとした)
2.[Service1.cs]デザインで右クリックして、[インストーラの追加]をクリック。
3.[ProjectInstaller.cs[Design]]が生成され、その中に[serviceProcessInstaller][serviceInstaller]
が含まれている。
4.[serviceInstaller]のプロパティで[ServiceName]にJackServiceと入力。
5.[Service1.cs]を[JackService]に名前を変更。
6.ソリューションをビルド。
7.Visual Studio 2005 Command Promptを起動させ、ClientService.exeがあるパスを指定し、
InstallUtil ClientService.exe
を実行。
すると、[Set Service Login]というフォームが現れ、UserNameとPassword, Confirm passwordの
入力を求められます。
Webサイトのチュートリアルなどを参考にしているのですが、このようなフォームに関しては出ていません。
なので、いろいろと入力をしているのですが、コマンドプロンプトにはInstall FailとなりRollbackされて
いるようです。
Windowsサービスのインストール方法について教えてください。よろしくお願いします。
回答
-
こんにちは。
あまり詳しいわけではないのですが、アカウントとパスワードはサービスの実行ユーザをServiceProcessInstallerの既定値のUserとしているからではないですか?
serviceInstallerが表示されている同じデザイナ上にserviceProcessInstaller1というような名前でコンポーネントがあれば、そのAccountプロパティがUserになっていると思います。他の値LocalSystemなどにすれば、ユーザアカウントの入力画面は出なくなると思います。
ServiceProcessInstaller.Account プロパティ
インストールに失敗するのは権限が不足しているのかもしれません。
ログファイルが作成されていると思うので、確認してみるとよいと思います。
すべての返信
-
こんにちは。
あまり詳しいわけではないのですが、アカウントとパスワードはサービスの実行ユーザをServiceProcessInstallerの既定値のUserとしているからではないですか?
serviceInstallerが表示されている同じデザイナ上にserviceProcessInstaller1というような名前でコンポーネントがあれば、そのAccountプロパティがUserになっていると思います。他の値LocalSystemなどにすれば、ユーザアカウントの入力画面は出なくなると思います。
ServiceProcessInstaller.Account プロパティ
インストールに失敗するのは権限が不足しているのかもしれません。
ログファイルが作成されていると思うので、確認してみるとよいと思います。