C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: Windowsサービスの設定ファイルはどこに置くべきか


(過去ログ 22 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■9296 / inTopicNo.1)  Windowsサービスの設定ファイルはどこに置くべきか
  
□投稿者/ nbmyou (33回)-(2007/10/24(Wed) 13:27:53)

分類:[C#] 

当掲示板にはたびたびお世話になっております。
初心者のnbmyouと申します。

現在、VS2005のC#を使用し、
ポーリングでフォルダを監視するWindowsサービスを作成しています。
ポーリングを行う時間間隔や、監視フォルダの設定を、
XMLの設定ファイルで持とうと思っています。
ちなみにこのファイルは、ユーザが書き換えて使用できるものとしようと思っています。

そこで質問なのですが、この設定XMLファイルは、
どのフォルダに置くことが妥当と考えられますでしょうか。

Windowsサービスではなく、exeファイルなどであれば、
インストールしたフォルダでいいと思うのですが、
Windowsサービスの場合は通常どうしているものかわからないため、質問させていただきました。

お手数ですが、おわかりになる方がいらっしゃいましたら
ご教授いただけると助かります。

よろしくお願いいたします。
引用返信 編集キー/
■9301 / inTopicNo.2)  Re[1]: Windowsサービスの設定ファイルはどこに置くべきか
□投稿者/ 渋木宏明(ひどり) (496回)-(2007/10/24(Wed) 14:13:48)
渋木宏明(ひどり) さんの Web サイト
2007/10/24(Wed) 14:16:27 編集(投稿者)

> XMLの設定ファイルで持とうと思っています。
> ちなみにこのファイルは、ユーザが書き換えて使用できるものとしようと思っています。

ということであれば

> Windowsサービスではなく、exeファイルなどであれば、
> インストールしたフォルダでいいと思うのですが、

という想定は、逆に駄目です。

.exe の横=通常は Program Files 配下であるので一般ユーザには書き込み権限がありませんし、Vsita ではファイル仮想化による不都合が発生し得ます。

また、設定ファイルのひな形をインストーラで単純に配置してしまうと、修復インストールの際に問題を生じる可能性があります。

> Windowsサービスの場合は通常どうしているものかわからないため、質問させていただきました。

あまりよい方法が無いですね。

設定変更用のUIは用意しますか?

であれば、ガイドラインに従って、All Users の AppData 配下か、あるいはレジストリの HKLM\Software 配下が妥当ということになります。

ですが、設定変更用のUIを用意しない場合、例えばメモ帳でユーザに設定ファイルを書き換えてもらうことを想定しているのであれば、あまり分かりやすいとは言えません。

個人的には、そういう場合は逆に「.exe の横」でもいいのかな、と (^^;

ただしその場合、設定ファイルのひな形は、カスタムアクションで配置するなど、通常の Widnows Installer の枠組みから外れたところで配置を行うべきでしょう。>インストーラを使う場合
引用返信 編集キー/
■9302 / inTopicNo.3)  Re[1]: Windowsサービスの設定ファイルはどこに置くべきか
□投稿者/ 魔界の仮面弁士 (486回)-(2007/10/24(Wed) 14:16:46)
No9296 (nbmyou さん) に返信
> XMLの設定ファイルで持とうと思っています。
> ちなみにこのファイルは、ユーザが書き換えて使用できるものとしようと思っています。

XML ファイルではなくレジストリに設定値を持つようにして、
ユーザのために「設定ツール」を別途用意する、というのは駄目ですか?
引用返信 編集キー/
■9305 / inTopicNo.4)  Re[2]: Windowsサービスの設定ファイルはどこに置くべきか
□投稿者/ nbmyou (34回)-(2007/10/24(Wed) 14:53:44)
No9301 (渋木宏明(ひどり) さん) に返信

> .exe の横=通常は Program Files 配下であるので一般ユーザには書き込み権限がありませんし、Vsita ではファイル仮想化による不都合が発生し得ます。
>
> また、設定ファイルのひな形をインストーラで単純に配置してしまうと、修復インストールの際に問題を生じる可能性があります。

なるほど、そういうものなのですね。
また、VISTAは今回の動作環境には入っていませんが勉強になります。


> 設定変更用のUIは用意しますか?

いいえ、UIは用意しない予定です。


> ですが、設定変更用のUIを用意しない場合、例えばメモ帳でユーザに設定ファイルを書き換えてもらうことを想定しているのであれば、あまり分かりやすいとは言えません。
>
> 個人的には、そういう場合は逆に「.exe の横」でもいいのかな、と (^^;
>
> ただしその場合、設定ファイルのひな形は、カスタムアクションで配置するなど、通常の Widnows Installer の枠組みから外れたところで配置を行うべきでしょう。>インストーラを使う場合

インストーラを使用するつもりですが、MSDNのチュートリアルに従ってWindowsサービスを作ってみた程度のスキルであるため、
(セットアッププロジェクトを、説明に従って作成しました)
カスタムアクションについて等、よくわかりません。勉強してみます。

もしよろしければ、WindowsInstaller・カスタムアクションについて参考になるサイト等、紹介していただけませんでしょうか?
(自分でも探してみます)
引用返信 編集キー/
■9306 / inTopicNo.5)  Re[2]: Windowsサービスの設定ファイルはどこに置くべきか
□投稿者/ nbmyou (35回)-(2007/10/24(Wed) 14:55:13)
No9302 (魔界の仮面弁士 さん) に返信

> XML ファイルではなくレジストリに設定値を持つようにして、
> ユーザのために「設定ツール」を別途用意する、というのは駄目ですか?

今のところ、設定ツールを用意する予定はありません。
が、そのような方法がポピュラーなものでしょうか?(XMLを使用することは少ないのでしょうか?)
引用返信 編集キー/
■9310 / inTopicNo.6)  Re[3]: Windowsサービスの設定ファイルはどこに置くべきか
□投稿者/ 魔界の仮面弁士 (488回)-(2007/10/24(Wed) 15:39:29)
2007/10/24(Wed) 15:41:52 編集(投稿者)

No9306 (nbmyou さん) に返信
> 今のところ、設定ツールを用意する予定はありません。
> が、そのような方法がポピュラーなものでしょうか?

自分ではサービスを作った事がありませんし、世間一般でポピュラーな手法かと問われると悩みますが、
少なくとも当方で導入した「サービスとして動作する製品」3種では、
 A社製品:「レジストリ+手動書き換え」/設定反映のためにサービス再起動が必要
 B社製品:「レジストリ+設定画面」/設定反映が動的に行われる項目と、再起動が必要な項目とが存在
 C社製品:「設定項目なし」
となっていました。


> (XMLを使用することは少ないのでしょうか?)
多いか少ないか、という質問に対する回答は持ち合わせていませんが、少なくとも
Internet Information Services の最近のバージョンでは、MeataBase.xml を
参照しますので、皆無ではないでしょうね。
引用返信 編集キー/
■9443 / inTopicNo.7)  Re[4]: Windowsサービスの設定ファイルはどこに置くべきか
□投稿者/ nbmyou (36回)-(2007/10/26(Fri) 17:23:22)
No9310 (魔界の仮面弁士 さん) に返信

お礼が遅れてしまいました。すみません。
参考になる情報、ありがとうございました。
とても勉強になり、また今後自分で調べる際の参考ともなる情報でした、とても助かりました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -