- PR -

C#でサービスの登録について

1
投稿者投稿内容
しん
ベテラン
会議室デビュー日: 2008/05/27
投稿数: 63
投稿日時: 2008-11-07 11:53
言語:VisualStadio2008 C# Professional Edition

プロジェクトの追加でWindowsサービスを選択、インストーラの追加をして、
コード記述⇒ビルドで正常終了後に作成されるexeをコマンドプロンプトから
installutil TESTservice.exeを実行したら、形式が違いますのエラーが発生
したのですが、原因がわかりません。
設定不足なのでしょうか?
知っている方がいらっしゃいましたらご教授ください。

セラフ
ベテラン
会議室デビュー日: 2005/12/01
投稿数: 95
お住まい・勤務地: 東北の顔の形といえば
投稿日時: 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/05/27
投稿数: 63
投稿日時: 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は形式が無効です。が出力。)

セラフ
ベテラン
会議室デビュー日: 2005/12/01
投稿数: 95
お住まい・勤務地: 東北の顔の形といえば
投稿日時: 2008-11-07 15:05
同じやり方で登録できました。問題ないと思います。

もしかして、プロジェクトの.NETのバージョンとinstallutilのバージョンずれてないですか?

.NET 2.0だったら、
コード:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe


なんですけど、他のバージョンの.NETなら、バージョンにあわせたInstallUtil使わないとダメかも知れないですね。

ちなみに私が作ったのは、WinXP+VS2008で.NET 2.0を使ったものなので・・・
しん
ベテラン
会議室デビュー日: 2008/05/27
投稿数: 63
投稿日時: 2008-11-07 15:31
セラフさんありがとうございます。
手順は、正しいということなので
InstallUtil.exeを検索したら3件ヒットしました。
\ServicePackFiles\i386
\Framework\v1.1.4322 pathに登録
\Framework\v2.0.50727
原因は、バージョンでした。
v2.0.50727のInstallUtil.exeで実行したらエラーはでなくなったのですが
実行途中で、サービスログインの画面が表示されたのですが
これは、なにか設定によるものなのでしょうか?
すみませんが、知ってたらご教授お願いします。
セラフ
ベテラン
会議室デビュー日: 2005/12/01
投稿数: 95
お住まい・勤務地: 東北の顔の形といえば
投稿日時: 2008-11-07 15:52
この辺の設定は適切にされていますか?
http://msdn.microsoft.com/ja-jp/library/0x72fzyf(VS.80).aspx

恐らくサービスの中で何か権限の無い処理を実行しているのではないかと思います。
アクセスするファイルやフォルダの権限等を確認すると共に、サービスが実行されるアカウントの設定も適切なものに設定すると、ログインは出なくなるはずです。
しん
ベテラン
会議室デビュー日: 2008/05/27
投稿数: 63
投稿日時: 2008-11-07 16:04
セレフさんありがとうございました。

サービスに登録されました。
原因は、serviceProcessInstallerコンポーネントのAccountプロパティの設定が
userになっていたためでした。
忙しいところ、ありがとうございました。
1

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