2017-09-18 5 views
0

私は最後の2時間を無回答で見つけようとしました。ローカルIIS 10にWCFサービスを展開するときにWeb.configの設定を使用できない

ローカルIIS 10(Windows 10)に「展開」したWCFサービスを作成しました。 この「展開プロセス」は、IISマネージャーで新しいIIS Webサイト(ASP.NET v4.6.2)を追加することによって実行されました。このIISサイトの物理パスは、私のWCFプロジェクトのルート(SVCとweb.configが存在する場所)です。

SoapUIから呼び出すときにサービスとWSDLを呼び出すことができ、実行はサービスハンドラメソッドのブレークポイントで停止します。ここまでは順調ですね。

私のweb.configは変更されていません。設定値を読み込もうとするコードをデバッグすると、web.configファイルのファイルパスはC:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ web.configになっています。

これは私の.NET(ランタイム)環境の「マスター」設定です。

プロジェクトweb.configファイルはSVCの隣にあり、afaik everyoneはIISとファイルシステムにアクセスできます。何か不足していますか?

他の物事のカップル:

  • web.configファイルは、デバッグとリリースのための変換があります。両方とも空であり、手動でデバッグバージョンにエントリを追加すると助けにならなかった
  • ソリューション内の他のプロジェクトの1つにapp.configがあるため、コンソールまたはWindowsサービスアプリケーションとしてサービスを実行することもできます)

ご協力いただきありがとうございます!

答えて

0

私はこの問題を発見しました。これは部分的には、他の人のコードを維持していて、いくつかの初歩的なものを見落としていたという事実によるものです。

設定

は、このコード行を読みました:

変数名が言うように

Configuration rootWebConfig1 = WebConfigurationManager.OpenWebConfiguration(null);

、これは(.NETランタイムフォルダ内の)ルートweb.configファイルを取得します。

Configuration config = WebConfigurationManager.OpenWebConfiguration("~");

それは私の設定を参照してくださいました。

は、私は次の変更を行ったとき。 Afaik "〜"はアプリケーションのルートを意味し、 "/"はウェブサイトのルートを意味します(私が間違っていれば私を修正します)。

<appSettings> <add key="someFakeKey" value="someValue" /> </appSettings>

そして設定を取得するには、全体のコードブロック:

Configuration config = WebConfigurationManager.OpenWebConfiguration("~"); if (config.AppSettings.Settings.Count > 0) { KeyValueConfigurationElement poliskluisServerSetting = config.AppSettings.Settings["someFakeKey"]; if (poliskluisServerSetting != null) _poliskluisserver = poliskluisServerSetting.Value; }

完全性については

、web.configファイルで私の設定では、このようになります

関連する問題