6

参照されている .NET Framework 2.0 アセンブリが、IIS でホストされている WCF サービスで次のコード行を実行しようとすると、エラーが発生しました。

エラーメッセージ:

スタンドアロンの exe 内で実行していない場合は、exePath を指定する必要があります。

ソースコード:

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

この問題を経験した人はいますか?解決方法を知っていますか?

編集:私の質問は、.NET 2.0 アセンブリと下位互換性のある WCF サービスから構成ファイル (app.config および web.config) を開く最良の方法は何ですか?

4

3 に答える 3

4

参照されている.NET2.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);
于 2008-10-31T01:26:29.400 に答える
3

以前の回答から既存のコードを削除し、次の ConfigurationManager 実装に置き換えることで、構成の問題を解決できました。

string MySetting = ConfigurationManager.AppSettings.Get("MyAppSetting");

ASP.NET アプリケーション、WinForms アプリケーション、および WCF サービスで機能する場合。私は 3 年前にクラス ライブラリの初期実装をオーバー エンジニアリングしました....

于 2008-11-07T23:00:24.493 に答える
1

それはあなたが達成しようとしていることに依存します。ASP.NET では、通常、このようなものには ConfigurationManager を使用しませんが、代わりに WebConfigurationManager を使用します。とはいえ、実際には、OpenExeConfiguration が許可するユーザー/ローミング/その他のものは Web アプリケーションでは意味がないため、正確に同等のものはありません。

何のために必要ですか?

于 2008-10-25T02:28:31.440 に答える