0

クラス ライブラリにいくつかの WCF サービスを作成しました。これらのサービスが正しく機能するには、いくつかの構成値が必要です。そのため、IIS にサービスを展開した後、これらの構成を web.config ファイルに追加しました。問題は、これらのサービスを使用しようとすると、構成の読み取り中に次の例外が発生することです。

System.ArgumentException: スタンドアロン exe 内で実行されていない場合は、exePath を指定する必要があります。

サービスをテストすると、IIS でホストする前に正常に動作することを知っています。

問題は、dll サービスを構成できるようにするには、何を変更する必要があるかということです。

これは web.config ファイルの一部です。

    <children>
  <child name="service_config">
    <properties>
      <property name="connection_name" value="Photo" valueType="System.String" />
      <property name="data_access_interface" value="data_access" valueType="System.String" />
      <property name="is_client_db" value="false" valueType="System.String" />
      <property name="exchange_service" value="exchange_service_key" valueType="System.String" />
      <property name="max_file_size" value="1000" valueType="System.String" />
      <property name="email_sender" value="test@gmail.com" valueType="System.String" />
      <property name="email_body_template_name" value="test_files/Template.txt" valueType="System.String" />
      <property name="tablet_photo_size_height" value="100" valueType="System.String" />
      <property name="tablet_photo_size_width" value="90" valueType="System.String" />
      <property name="phone_photo_size_height" value="200" valueType="System.String" />
      <property name="phone_photo_size_width" value="180" valueType="System.String" />
      <property name="phone_photo_optimized_size_height" value="80" valueType="System.String" />
      <property name="phone_photo_optimized_size_width" value="60" valueType="System.String" />
      <property name="web_photo_size_height" value="127" valueType="System.String" />
      <property name="web_photo_size_width" value="170" valueType="System.String" />
      <property name="email_client_key" value="email_client_key" valueType="System.String" />
    </properties>
4

1 に答える 1

0

何をしようとしているのかは完全には明らかではありませんが、ConfigurationManager.OpenExeConfiguration構成ファイルの指定されたセクションを読み取るために使用しているようです。受け取ったエラー メッセージは、問題が何であるかを理解するための出発点となります。おそらく、IIS が exe へのパスを持っていないことに関係しています。

構成ファイルにアクセスするために使用しているコードを示しておらず、投稿された構成には多くのコンテキストがないため、何をすべきかを伝えるのは困難です.

ただし、構成ファイルの<appSettings>セクション (app.config ファイルと web.config ファイルの両方で利用可能) を使用してこれらのプロパティを保存し、それらを取得することができますConfigurationManager.AppSetting[keyName]

このようなもの:

<appSettings>
  <add key="connection_name" value="Photo" />
  <add key="data_access_interface" value=data_access" />
  <!-- plus the rest of your values -->
</appSettings>

次に、次のようなものを使用します。

string connectionName = ConfigurationManager.AppSettings["connection_name"];
string dataAccesInterface = ConfigurationManager.AppSettings["data_access_interface"];

これは、スタンドアロンの exe として実行している場合でも、IIS でホストしている場合でも機能します。

標準セクションを使用したくない (または使用できない) 理由がある場合は、より良いガイダンスを提供できるように、セクション<appSettings>の前後のコンテキスト<children>とアクセスしようとしている方法で質問を更新してください。

于 2013-05-03T03:35:21.393 に答える