misc.log

日常茶飯事とお仕事と

VB.NETでWindowsサービスを作る(2)

id:frontline:20070320:p1の続き。
Windowsインストーラでのインストール云々はとりあえず置いておいて、まず、手作業で登録してみることにする。通常の環境はちょっと怖いので、VMWareで構築したWindows 2000 Professional環境にファイルをコピー。このOSには、すでに.NET Frameworkが入っている。
サービスのファイル(TestService_01.exe)は、とりあえずCドライブ直下に置く。で、InstallUtil.exeはどこにあるのかと言うと...

C:\WINNT\MIcrosoft.NET\Framework\v1.1.4322


にあるようだ。開発環境が入っていれば、このあたりにパスが通ったコマンドプロンプトが簡単に開けるのだが、この環境は開発環境は一切入っていない。というわけで、コマンドプロンプトでこのフォルダに移動し、コマンドを実行してみよう。

InstallUtil TestService_01.exe


でいいのかな...

C:\WINNT\Microsoft.NET\Framework\v1.1.4322>installutil C:\TestService_
Microsoft(R) .NET Framework Installation utility Version 1.1.4322.573
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.

トランザクションのインストールを実行中です。

インストール段階を開始しています。
c:\testservice_01.exe アセンブリの進行状態については、ログ ファイルの内
してください。
ファイルは c:\testservice_01.InstallLog にあります。
アセンブリ 'c:\testservice_01.exe' をインストールしています。
該当するパラメータ :
   assemblypath = c:\testservice_01.exe
   logfile = c:\testservice_01.InstallLog
サービス 'TestService' をインストールしています...
サービス 'TestService' は正常にインストールされました。
EventLog ソース TestService をログ Application に作成しています...

インストール段階が正常に完了しました。コミット段階を開始しています。
c:\testservice_01.exe アセンブリの進行状態については、ログ ファイルの内
してください。
ファイルは c:\testservice_01.InstallLog にあります。
アセンブリ 'c:\testservice_01.exe' をコミットしています。
該当するパラメータ :
   assemblypath = c:\testservice_01.exe
   logfile = c:\testservice_01.InstallLog

コミット段階が正常に終了しました。

トランザクション インストールが完了しました。


こんな表示がズラっとでて、終わった。管理ツールのサービスを見てみよう。
...あるある。起動設定は「手動(Manual)」にしてあったので、サービス一覧から起動を指示。サービスのソースには、以下の文章があるだけ。

Protected Overrides Sub OnStart(ByVal args() As String)
    ' サービスを開始するためのコードをここに追加します。このメソッドで、設定を行いながら
    ' サービスの実行が妨げられないようにします。

    EventLog.WriteEntry("Testサービスが始まりましたよ...")

End Sub

Protected Overrides Sub OnStop()
    ' サービスを停止するのに必要な終了処理を実行するコードをここに追加します。
End Sub


イベントログを見てみると、きちんと上記のくだらないメッセージが記録されている。


というわけで、とりあず「なんとか導入させる&動かす」はうまくいった。


もう少し続きがあります → http://d.hatena.ne.jp/frontline/20070322/p5