Windowsサービスでsystem.configuration.settingspropertynotfoundexceptionエラーが発生します
-
28-10-2019 - |
質問
SettingsProviderを使用して構成設定を読み取り、ファイルが存在しない場合はデフォルト値を設定するWindowsアプリがあります。
正常に動作します。
このアプリを起動するWindowsサービスを作成しようとしています。サービスによって実行されると、すべての設定属性でSystem.Configuration.SettingsPropertyNotFoundException
を取得します。
サービスがアプリを実行しているときにこの例外を解決するにはどうすればよいですか?
解決
これは単に、アプリが.Settingsファイルを読み取れないことを意味します。考えられる原因は2つあります。
-
サービスは、.settingsファイルにアクセスできないアカウントで実行されます。(または.configファイルによって異なります)サービスがアプリを起動できるため、これはほとんどありません。また、設定ファイルではなくアプリへのアクセス許可を持っていることは意味がありません。
-
ランタイムは設定ファイルを見つけることができません。設定が実行可能ファイルのルート起動パスにあることを想定しています。問題のマシンに存在することを確認してください。
しかし、グーグルの結果は、私が考えもしなかった明らかな考えられる原因を明らかにしました。最後のコンパイル後に.settingsが追加されましたか?Visual Studioでアプリをコンパイルし、再試行してください...
他のヒント
もう1つの考えられる原因は、SettingsProvider
中にスローされて例外となるカスタムInitialize
を記述した場合です。
私の場合、私はこれを行いました: ジェネラコディセタグプレ
name
は常にnull
として渡されるため、base.Initialize
はArgumentNullException
をスローしていました。次のようにnull以外の名前を渡すことで修正しました:
ジェネラコディセタグプレ