WCFおよびSystem.Configuration名前空間
-
04-07-2019 - |
質問
参照されている.NET Framework 2.0アセンブリがIISでホストされているWCFサービスで次のコード行を実行しようとしたときにエラーが発生しました:
エラーメッセージ:
exePathは、指定されていない場合に指定する必要があります スタンドアロンのexe内で実行します。
ソースコード:
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
この問題を経験した人はいますか?解決方法を知っていますか?
編集:私の質問は、.NET 2.0アセンブリと下位互換性のあるWCFサービスから構成ファイル(app.configおよびweb.config)を開く最良の方法は何ですか?
解決 2
既存のコードを事前の回答から削除し、次のConfigurationManager実装に置き換えることで、構成の問題を解決できました。
string MySetting = ConfigurationManager.AppSettings.Get("MyAppSetting");
ASP.NETアプリケーション、WinFormsアプリケーション、およびWCFサービスで機能する場合。 3年前にクラスライブラリの初期実装を過剰に設計しました。...
他のヒント
参照される.NET 2.0アセンブリは、一般的なタスクを処理するためにエンタープライズライブラリ用に開発したクラスライブラリの一部です。 ASP.NETおよびWinFormアプリケーションで使用することを目的としていました。
これは、開く構成ファイルのタイプを決定するために使用したソースコードです。
//Open app.config or web.config file
if (HttpContext.Current != null)
this.m_ConfigFile = WebConfigurationManager.OpenWebConfiguration("~");
else
this.m_ConfigFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
何を達成しようとしているかによって異なります。 ASP.NETでは、通常、このようなものにはConfigurationManagerを使用せず、代わりにWebConfigurationManagerを使用します。ただし、実際にはOpenExeConfigurationで許可されているユーザー/ローミング/その他のものはWebアプリケーションでは意味をなさないため、まったく同じものはありません。
何のために必要ですか?