web-dev-qa-db-ja.com

Windowsサービスのapp.configの場所

Windows Server 2008にC#Windowsサービスをインストールしました。InstallUtilでインストールしました。サービスはapp.configファイルからいくつかのデータを読み取り、正常に処理しています。サービスをインストールした後、このファイルの場所を教えてもらえますか?何時間も探していましたが、見つかりません。

39
Mité

次の手順に従って、インストールされたWindowsサービスの正確な場所を確認できます。

  1. [管理ツール]アイコンの下にある[サービス]アイコンをクリックして、Windowsサービスのリストを表示します。 [スタート]メニューの[検索]メニューに「ローカルサービスの表示」と入力して、このリストを取得することもできます。

  2. インストールされているサービスのリストでWindowsサービスを選択し、右クリックして[プロパティ]を選択します。サービスを表す行をダブルクリックすることもできます。

  3. [プロパティ]ダイアログボックスで[実行可能ファイルへのパス]値を見つけます。値には、コマンドラインパラメーターが含まれます。

  4. サービス実行可能ファイルが存在するフォルダーを開きます。

Windowsサービスが.NET Frameworkで構築されている場合、その構成は、対応する.configファイルに保存されます。つまり、実行可能ファイルの名前が「XyzService」の場合、「。config」の接尾辞が付いた実行可能ファイルの名前です。 exe」の場合、.configファイルの名前は「XyzService.exe.config」になります。

注意点がいくつかあります。

  • Visual Studioなどを使用して同じマシンにサービスをビルドした後にインストールした場合、Visual StudioはプロジェクトからApp.configファイルを変換し、ビルド出力フォルダーに自動的に配置します(そして、上記の名前を使用して適切に名前を変更します)コンベンション)。

  • Windowsエクスプローラーでファイル拡張子を非表示にするようにマシンが設定されている場合、「XyzService」と「XyzService.exe」という2つのファイルが表示されます。この場合、「XyzService.exe」は設定ファイルです。その後、Windowsエクスプローラーでファイル拡張子を非表示にするオプションをオフにすると、「XyzService.exe」と「XyzService.exe.config」が表示され始めます。

  • 対応する.exe.configファイルが見つからない場合、サービス内のコードがデフォルト値にフォールバックしている可能性があります。この場合、適切に名前が付けられてフォーマットされた構成ファイルをサービス実行可能ファイルと一緒に配置してから、サービスを再起動すると、すべてが正常になります。

56

Microsoft による

クライアント実行可能ファイルの場合、アプリケーション構成ファイルはアプリケーションの実行可能ファイルと同じディレクトリに存在し、拡張子が.configの実行可能ファイルと同じベース名を持ちます。

Exeの名前がappname.exeであり、拡張子を非表示にするようにWindowsエクスプローラーを設定している場合、アプリケーションはappnameおよび構成ファイルとして表示され、appname.exeとして表示されます(実際の名前はappnameです)。 exe.config)

他の人が指摘しているように、InstallUtilは構成ファイルに対して何も実行せず、exe自体と同じ方法でサーバーにコピーする必要があります。

4
sgmoore

installutil ツールを使用してサービスを登録した場所と同じ場所です。

3
Tilak

App.configは、おそらく{ProjectName}.exe.configそれがWindowsサービスであるという事実を考えると。そのファイルが存在し、探しているものであるかどうかを確認してください。

2
Brandon

アプリケーション(Windowsサービス)と同じ場所。

存在しない場合は、サービスと同じディレクトリに配置してください。

1
Kishore Kumar

ライブ環境がある場合(そして、あなたの質問からそう思われます)、優れたProcess Monitorユーティリティを使用して、実際に何が起こっているかを確認できます。ただし、通常、.configファイルは.exeのすぐ横にあり、同じ名前が付けられています。

0
Michaelb