WCFサービスを使用しており、承認に関する機能を追加する必要があります。 ServiceAuthorizationManager
から継承し、app.config
に追加したクラスを作成しました。それは正常に動作しています。IDispatchMessageInspectorがWCFサービスを使用していない
また、IDispatchMessageInspector
を実装するクラスを実装する必要があるため、メッセージの検証を行うこともできます。
私はthis、this、this、this、thisおよびいくつかの他のような多くの例が続いています。 SOのthisのような質問もあります。
これらはすべてapp.config
ファイルで同じ設定になっているようです。しかし、それを試してコードを実行すると、デバッグ時にIDispatchMessageInspector
を実装するクラスが呼び出されることはありません。私はブレークポイントを追加しましたが、決してヒットしません。
明らかなものがありませんか?
<extensions>
<behaviorExtensions>
<add name="MessageInspectorBehaviourExtension" type="MultipleEndpoints.MessageInspectorBehaviourExtension, RL_Managed_Service" />
</behaviorExtensions>
</extensions>
<behaviors>
<serviceBehaviors>
<behavior name="RLServiceBehavior">
<serviceDebug includeExceptionDetailInFaults="False"/>
<serviceAuthorization serviceAuthorizationManagerType="MyProject.Services.AuthorizationService,MyProject"/>
<MessageInspectorBehaviourExtension />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="RLServiceBehavior" name="MultipleEndpoints.RL_Managed_Service">
<endpoint address="" binding="basicHttpBinding" contract="MultipleEndpoints.container_db_ops" bindingConfiguration="TransportSecurity"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<!-- --><add baseAddress="http://localhost:49224/My_Service/"/>
</baseAddresses>
</host>
</service>
</services>
この投稿に間違いがあっただけです。 –
詳細は私の答えを更新しました –
私は 'serviceBehaviors'と' endpointBehaviors'を混ぜ合わせていないことを100%確信していました。おそらくこれは私の問題でした。 –