- PR -

インストール直後にWindowsサービスの開始

1
投稿者投稿内容
まつとうや
常連さん
会議室デビュー日: 2004/09/04
投稿数: 42
投稿日時: 2004-10-22 13:11
Windowsサービスをインストール直後に再起動なしで
開始させたいのですが、なかなか上手くいきません。

下記のメソッドをProjectInstallerクラスの最後に書くと
表示上は開始されてるのですが、実際正常に動作しておらず
サービスを再起動すると正常に動作します。
ProjectInstallerクラスのデストラクタを作り、そこに書いてもだめでした。
Installもコンパイルは通るものの実際には起動しませんでした。
再起動すれば、ServiceStartMode.Automaticに指定してあるので
正常に動作するのですが、インストール直後にサービスを
自動開始するにはどのようにすればいいのでしょうか。
ご存知の方、宜しくお願いいたします。

System.ServiceProcess.ServiceController myController =
new System.ServiceProcess.ServiceController("サービス名");
myController.Start();
ぶw
常連さん
会議室デビュー日: 2003/01/24
投稿数: 20
投稿日時: 2004-10-22 14:27
Startの例外を捕捉すれば原因がわかるかもしれません?
あるいはStatusプロパティを見たらヒントがあるかも。
引用:

下記のメソッドをProjectInstallerクラスの最後に書くと


と言うことなので、サービスのインストールが完了していないのに開始させようとしてるような・・・私見ではこのタイミングでは不可能な気がします。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2004-10-22 14:46
引用:

Windowsサービスをインストール直後に再起動なしで
インストール直後にサービスを
自動開始するにはどのようにすればいいのでしょうか。



デプロイメントプロジェクトの範囲では難しいかもしれません。

.msi に、手動でカスタムアクションをの定義を追加してやれば、うまく行きそうな気がします。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2004-10-22 14:59
引用:

下記のメソッドをProjectInstallerクラスの最後に書くと



何処に書いたのですか?
CommitかOnAfterInstallなら行けそうな気がします。
まつとうや
常連さん
会議室デビュー日: 2004/09/04
投稿数: 42
投稿日時: 2004-10-22 15:45
protected override void OnAfterInstall
では無理みたいでしたが、

public override void Commit( IDictionary mySavedState )
{
base.Commit( mySavedState );
//インストール直後自動開始
System.ServiceProcess.ServiceController sc = new              System.ServiceProcess.ServiceController();
sc.ServiceName = "サービス名";
sc.Start();
}

コミット後の呼び出しで無事、インストール直後から実行することができました。
アドバイス本当にありがとうございました。


[ メッセージ編集済み 編集者: まつとうや 編集日時 2004-10-22 15:46 ]
1

スキルアップ/キャリアアップ(JOB@IT)