- - PR -
インストール直後にWindowsサービスの開始
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-10-22 13:11
Windowsサービスをインストール直後に再起動なしで
開始させたいのですが、なかなか上手くいきません。 下記のメソッドをProjectInstallerクラスの最後に書くと 表示上は開始されてるのですが、実際正常に動作しておらず サービスを再起動すると正常に動作します。 ProjectInstallerクラスのデストラクタを作り、そこに書いてもだめでした。 Installもコンパイルは通るものの実際には起動しませんでした。 再起動すれば、ServiceStartMode.Automaticに指定してあるので 正常に動作するのですが、インストール直後にサービスを 自動開始するにはどのようにすればいいのでしょうか。 ご存知の方、宜しくお願いいたします。 System.ServiceProcess.ServiceController myController = new System.ServiceProcess.ServiceController("サービス名"); myController.Start(); | ||||
|
投稿日時: 2004-10-22 14:27
Startの例外を捕捉すれば原因がわかるかもしれません?
あるいはStatusプロパティを見たらヒントがあるかも。
と言うことなので、サービスのインストールが完了していないのに開始させようとしてるような・・・私見ではこのタイミングでは不可能な気がします。 | ||||
|
投稿日時: 2004-10-22 14:46
デプロイメントプロジェクトの範囲では難しいかもしれません。 .msi に、手動でカスタムアクションをの定義を追加してやれば、うまく行きそうな気がします。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||
|
投稿日時: 2004-10-22 14:59
何処に書いたのですか? CommitかOnAfterInstallなら行けそうな気がします。 | ||||
|
投稿日時: 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