4

カスタム MessageInspector を使用してサービス エンドポイントの動作を拡張しようとしています。拡張機能は正常に動作し、取得されますが、動作タグで「name」パラメーターを定義せず、エンドポイントで特定の behaviorConfiguration を定義しない場合に限ります。これは、すべてのエンドポイントを拡張していることを意味し、これは望ましくありません。誰が私が間違っているのか説明してもらえますか?

この構成はmyBehaviour拡張機能を取得せず、失敗しません。

<system.serviceModel>
   <services>
      <service name="testService">
        <endpoint address="http://localhost:9999/TestServiceService"
                  binding="wsHttpBinding"
                  contract="ITestService "
                  behaviorConfiguration="myBehaviour"
                  />
        <endpoint address="mex"
                  binding="mexHttpBinding" 
                  contract="IMetadataExchange"
                  />
      </service>
  </services>
  <behaviors>
      <endpointBehaviors>
        <behavior name="myBehaviour">
          <HeaderForwardExtension />
        </behavior>
      </endpointBehaviors>
  </behaviors>
  <extensions>
     <behaviorExtensions>
        <add name="HeaderForwardExtension" type="Test.Service.HeaderForwardBehavior, Test.Service, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
     </behaviorExtensions>
  </extensions>
</system.serviceModel>

ただし、削除する

behaviorConfiguration="myBehaviour"

名前が存在しないように動作タグを変更します

 <behavior>
    <HeaderForwardExtension />
 </behavior>

うまく動作します。

ありがとうございました

4

1 に答える 1