3

私はカスタム HttpHandler を開発しています。そのために、C# クラス ライブラリを作成し、DLL にコンパイルします。

この一環として、アプリにハードコードしたくないディレクトリの場所がいくつかあるので、以前に使用した app.config に入れようとしています。

これが機能する前に、 app.configをビルドするだけです。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Share" value="C:\...\"/>
  </appSettings>
</configuration>

そして、次のようなコードでこれを取得します。

var shareDirectory = ConfigurationManager.AppSettings["Share"];

しかし、それをコンパイルして webservice の bin フォルダーに入れるとshareDirectory、おそらく app.config が見つからないため、 が null になり続けます。では、ディレクトリの場所をハードコードする必要がないように、これが含まれていることを確認するにはどうすればよいですか? 基本的に、コンパイル後に assembly.dll と app.config ファイルである assembly.dll.config を取得することに気付きました。したがって、それは間違いなく bin フォルダーにあります。

4

3 に答える 3

3

これは、Webサービスがweb.config

于 2010-06-01T00:23:11.610 に答える
2

assembly.dll.config ではなく、web.config ファイルに構成を配置する必要があります。.NET は (設計により) assembly.dll.config ファイルを読み取りません。

于 2010-06-01T00:23:01.000 に答える
2

クラス ライブラリのスコープを混乱させている可能性があります。

web.config であれ app.config であれ、構成は HOSTING アプリケーションに存在する構成であることを忘れないでください。この場合、ホスティング アプリケーションは WebService であり、もちろん IIS によってホストされるため、構成ファイルは web.config です。

そのクラス ライブラリを何らかの形で使用するコンソール アプリがある場合 (おそらく http ハンドラー コンテキストでは使用されません)、config は、クラス ライブラリの app.config ではなく、コンソール アプリの app.config になります。

于 2010-06-01T00:27:53.733 に答える