こちらの例に従って、サービス クライアントにカスタム動作を挿入しようとしています。
すべての手順に従っているように見えますが、ConfigurationErrorsExceptionが発生しています。私が間違っていることを見つけることができる私よりも経験豊富な人はいますか?
app.config ファイル全体を次に示します。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="ClientLoggingEndpointBehaviour">
<myLoggerExtension />
</behavior>
</endpointBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<add name="myLoggerExtension"
type="ChatClient.ClientLoggingEndpointBehaviourExtension, ChatClient, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</behaviorExtensions>
</extensions>
<bindings>
</bindings>
<client>
<endpoint
behaviorConfiguration="ClientLoggingEndpointBehaviour"
name="ChatRoomClientEndpoint"
address="http://localhost:8016/ChatRoom"
binding="wsDualHttpBinding"
contract="ChatRoomLib.IChatRoom"
/>
</client>
</system.serviceModel>
</configuration>
例外メッセージは次のとおりです。
system.serviceModel/behaviors の構成セクション ハンドラーの作成中にエラーが発生しました: 拡張要素 'myLoggerExtension' をこの要素に追加することはできません。拡張機能が、system.serviceModel/extensions/behaviorExtensions の拡張コレクションに登録されていることを確認します。パラメーター名: 要素 (C:\Documents and Settings\Andrew Shepherd\My Documents\Visual Studio 2008\Projects\WcfPractice\ChatClient\bin\Debug\ChatClient.vshost.exe.config 5 行目)
ClientLoggingEndpointBehaviourExtension オブジェクトへの参照を正しく記述したことはわかっています。これは、デバッガーを介してインスタンス化されていることを確認できるためです。