- - PR -
C#でサービスの登録について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-11-07 11:53
言語:VisualStadio2008 C# Professional Edition
プロジェクトの追加でWindowsサービスを選択、インストーラの追加をして、 コード記述⇒ビルドで正常終了後に作成されるexeをコマンドプロンプトから installutil TESTservice.exeを実行したら、形式が違いますのエラーが発生 したのですが、原因がわかりません。 設定不足なのでしょうか? 知っている方がいらっしゃいましたらご教授ください。 | ||||
|
投稿日時: 2008-11-07 13:25
このへんは参考になさいましたか?
http://msdn.microsoft.com/ja-jp/library/9k985bc9(VS.80).aspx 自分はこの通りにやって、シリアルポートから電光掲示板を制御するPGをサービスで登録できています。作成したインストーラでインストールしていますか?この通りにやると、サービスとして作成したプロジェクトとインストーラのプロジェクトが作成されると思いますが、インストーラのプロジェクトが出力したexeを実行していますか? 最初に作成したサービス本体のプロジェクトの出力のexeを直接インストールしようとしていませんか?そちらではなく、インストーラのプロジェクト側の出力からインストールしてください。 思いつくのはそれぐらいです。 [ メッセージ編集済み 編集者: セラフ 編集日時 2008-11-07 13:28 ] | ||||
|
投稿日時: 2008-11-07 14:43
セラフさんありがとうございます。
参考したものは違います。 以下の手順で正しいかどうか確認して頂きたいのですが。 1.ファイル(F)-新規作成-Windowsサービスでプロジェクトを開きます。 2.「インストーラの追加」を選択するとserviceProcessInstallerとserviceInstaller のコンポーネントをデザインに追加される。 3.コーディング 4.リビルド後、bin上に2種類のexe(XXXX.exeとXXXX.vshost.exe)が作成される 5.コマンドプロンプトからinstallutil XXXX.exe実行。(エラー:XXXX.exeは形式が無効です。が出力。) | ||||
|
投稿日時: 2008-11-07 15:05
同じやり方で登録できました。問題ないと思います。
もしかして、プロジェクトの.NETのバージョンとinstallutilのバージョンずれてないですか? .NET 2.0だったら、
なんですけど、他のバージョンの.NETなら、バージョンにあわせたInstallUtil使わないとダメかも知れないですね。 ちなみに私が作ったのは、WinXP+VS2008で.NET 2.0を使ったものなので・・・ | ||||
|
投稿日時: 2008-11-07 15:31
セラフさんありがとうございます。
手順は、正しいということなので InstallUtil.exeを検索したら3件ヒットしました。 \ServicePackFiles\i386 \Framework\v1.1.4322 pathに登録 \Framework\v2.0.50727 原因は、バージョンでした。 v2.0.50727のInstallUtil.exeで実行したらエラーはでなくなったのですが 実行途中で、サービスログインの画面が表示されたのですが これは、なにか設定によるものなのでしょうか? すみませんが、知ってたらご教授お願いします。 | ||||
|
投稿日時: 2008-11-07 15:52
この辺の設定は適切にされていますか?
http://msdn.microsoft.com/ja-jp/library/0x72fzyf(VS.80).aspx 恐らくサービスの中で何か権限の無い処理を実行しているのではないかと思います。 アクセスするファイルやフォルダの権限等を確認すると共に、サービスが実行されるアカウントの設定も適切なものに設定すると、ログインは出なくなるはずです。 | ||||
|
投稿日時: 2008-11-07 16:04
セレフさんありがとうございました。
サービスに登録されました。 原因は、serviceProcessInstallerコンポーネントのAccountプロパティの設定が userになっていたためでした。 忙しいところ、ありがとうございました。 |
1