7

(作成した)サブクラスを使用する必要がありますが、このクラスはファイルSoapExtensionを介してのみ初期化できるようです。web.config私はそれがファイルを通して可能であるべきだと読みましたapp.config、しかし私はそれをそのようにする方法を知りません。

問題web.config:プロジェクトにファイルがありません。

そこで、次の内容で手動で作成しました。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <webServices>
      <soapExtensionTypes>
        <add type="MyNameSpace.MySoapExtension,MyAssemblyFileName" priority="1"/>
      </soapExtensionTypes>
    </webServices>
  </system.web>
</configuration>

各SoapExtensionメソッドでブレークポイントがディスパッチされているにもかかわらず、実行時に何も発生せず、呼び出されて初期化されることはないようです。私のSoapServiceは正常に初期化されますが、拡張機能はありません。

web.configファイルを手動で作成するだけでは考慮に入れられない可能性があるので、SoapExtensionを使用するためにweb.configファイルを持つようにアプリを適切に構成する方法を考えています。クラス、processMessage、chainStreamのものを初期化する必要があります。

:これは私の初めてのSoapExtension実装であるため、自分が何をしているのかよくわかりません。

4

2 に答える 2

13

web.configapp.configファイルにコンテンツを挿入する方法/場所を見つけました:

ApplicationSettingsuserSettings要素の後に挿入する必要がありました。これは、実行時にエラーが発生しない唯一の場所です。したがって、web.configファイルは必要ありませんが、誰かが答えを持っている場合は、アプリの構成方法を知りたいと思います。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
  </configSections>
  <applicationSettings>
  </applicationSettings>
  <userSettings>
  </userSettings>
  <system.web>
    <webServices>
      <soapExtensionTypes>
        <add type="MyNameSpace.MySoapExtension,MyAssemblyFileName" priority="1"/>
      </soapExtensionTypes>
    </webServices>
  </system.web>
  <system.serviceModel>
    <bindings />
    <client />
  </system.serviceModel>
</configuration>

SoapExtensionが正しく初期化されたようで、メッセージフィルタリングは正常に機能します。

于 2011-04-06T10:56:55.950 に答える
1

@soleshoeのコメントに関連して、ユニットテスト(XUnit)を機能させることができませんでした。最終的に、App.configは次のようになりました。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
  </configSections>
  <system.web>
    <webServices>
      <soapExtensionTypes>
        <add type="System.Common.SOAPExtensions.TraceExtension, System.Common"  priority="1"/>
      </soapExtensionTypes>
    </webServices>
  </system.web>
</configuration>
于 2013-05-07T11:03:50.357 に答える