5

URL を Web 参照に設定する方法に苦労しています。

これがケースです。私が持っている:古いasp.net Webサービス<----- dllにコンパイルするc#プロジェクト<----- dllを参照するWebサイト(c#プロジェクトは以前は存在しませんでしたが、すべてのコードを別のプロジェクト)

そのため、Web サイトのコードは c# プロジェクトのコードを呼び出して結果を取得し、結果が Web サービスを呼び出します。

C# プロジェクトに Web 参照を追加するときに、Web サービスの URL の場所 ( http://192.168.10.1/TestServices.asmx?wsdl ) を入力しました。これにより、Web サービスの URL を含む app.config ファイルが生成されます。

Web参照を静的に設定した場合、構成を使用しないでください。それは機能しています。ここで、Web 参照を動的に設定すると、構成を使用する必要がありますが、これは dll にコンパイルされるプロジェクトであり、Web サイトには app.config がないため、代わりに app.config から構成を my.xml に設定します。 web.config appSettings ノードで、Web サービスへの URL を別のもの ( http://192.168.10.2/TestServices.asmx ) に変更しました。

Web サイトは、C# プロジェクトに追加するときに Web 参照が指し示していた古い URL から結果をまだ取得しているため、URL Behavious が Dynamic に設定されている間、config 設定が使用されていないように見えます。

おそらく、ここで些細なことを見逃していますか?

これは app.config の内容です:

<applicationSettings>
     <XXXX.Properties.Settings>
      <setting name="XXXX_TestServices_TestServices" serializeAs="String">
       <value>http://192.168.10.1/TestServices.asmx</value>
      </setting>
     </XXXX.Properties.Settings>
    </applicationSettings>

これは私がweb.configに入れたものです:

<appSettings>
     <add key="XXXX_TestServices_TestServices" value="http://192.168.10.2/TestServices.asmx" />
</appSettings>

したがって、質問の入力中、およびダブルチェックと検索関連の質問中に、最終的に自分で質問を解決するときは、常に面白くて有益/教育的です。場所ですが、他の2つの質問とブログ投稿を組み合わせて.

4

1 に答える 1

7

一部のリソースでは、設定を作成する必要があり、コード内の Web サービス プロキシ オブジェクトの url プロパティを変更する必要があると記載されています。これは必須ではありません。正しい方法で Web 構成を編集するだけで済みます。

Web サイトから直接 Web サービスを参照するときのように、URL は web.config の appSettings セクションには入りません。

代わりに、正しい URL を設定するために使用される applicationSettings ノードを定義する sectiongroup 構成を含む、生成された app.config から構成コード全体を dll プロジェクトからコピーする必要があります。

web.config に次の構成コードが含まれているこの特定の例では、次のようになります。

<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="XXXX.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
  </configSections>
...
</configuration>

<applicationSettings>
    <XXXX.Properties.Settings>
      <setting name="XXXX_TestServices_TestServices" serializeAs="String">
        <value>http://192.168.10.2/TestServices.asmx</value>
      </setting>
    </XXXX.Properties.Settings>
</applicationSettings>
于 2012-09-27T15:14:14.347 に答える