Windows Server 2008にC#Windowsサービスをインストールしました。InstallUtilを使用してインストールしました。サービスはapp.configファイルからいくつかのデータを読み取り、正常に実行しています。サービスのインストール後、このファイルの場所を教えてください。私は何時間も探していましたが、それを見つけることができません。
6 に答える
以下の手順に従って、インストールされた Windows サービスの正確な場所を確認できます。
[管理ツール] アイコンの下の [サービス] アイコンをクリックして、Windows サービスのリストを表示します。このリストは、[スタート] メニューの下の [検索] メニューに「ローカル サービスの表示」と入力して取得することもできます。
インストールされているサービスのリストで Windows サービスを選択し、右クリックして [プロパティ] を選択します。サービスを表す行をダブルクリックすることもできます。
[プロパティ] ダイアログ ボックスで [実行可能ファイルへのパス] の値を探します。この値には、コマンド ライン パラメータが含まれます。
サービスの実行可能ファイルが存在するフォルダーを開きます。
Windows サービスが .NET Framework で構築されている場合、その構成は対応する .config ファイル、つまり実行可能ファイルの名前に ".config" という接尾辞が付けられたファイル (たとえば、実行可能ファイルの名前が "XyzService. 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 ファイルが見つからない場合は、サービス内のコードが既定値に戻っている可能性があります。この場合、適切な名前とフォーマットの構成ファイルをサービスの実行可能ファイルと一緒に配置してから、サービスを再起動すると、すべてがうまくいくはずです。
マイクロソフトによると
クライアント実行可能ファイルの場合、アプリケーション構成ファイルはアプリケーションの実行可能ファイルと同じディレクトリにあり、実行可能ファイルと同じベース名に .config 拡張子が付いています。
exe の名前が appname.exe で、拡張機能を非表示にするように Windows エクスプローラーを設定している場合、アプリケーションは appname として表示され、構成ファイルは appname.exe として表示されます (本当の名前は appname.exe ですが)。 exe.config)
他の人が指摘しているように、InstallUtil は構成ファイルに対して何もせず、exe 自体と同じ方法でサーバーにコピーする必要があります。
これは、 installutilツールを使用してサービスを登録した場所と同じ場所です。
App.config は{ProjectName}.exe.config
、Windows サービスであるため、呼び出される可能性があります。そのファイルが存在し、探しているものであるかどうかを確認してください。
アプリケーション (Windows サービス) と同じ場所。
そこにない場合は、サービスと同じディレクトリに配置してください。
ライブ環境をお持ちの場合 (そして、あなたの質問からそう思われます)、優れた Process Monitor ユーティリティを使用して実際に何が起こっているかを確認できます。ただし、通常、.config ファイルは .exe のすぐ隣にあり、同じ名前になっています。