サンプルを入手し、IIS ローカルで実行するようにセットアップしました。この質問と同じ問題は発生しませんでしたが、大きな落とし穴に遭遇しました。IIS でサービスにアクセスすると、次のエラー メッセージが表示されました。
コントラクトには Duplex が必要ですが、Binding 'BasicHttpBinding' は Duplex をサポートしていないか、Duplex をサポートするように適切に構成されていません。
頭を悩ませた後、この問題の原因を見つけました。WCF 4 では、各トランスポートに既定のバインドが割り当てられるようになりました (私はこの機能があまり好きではありません)。HTTP トランスポートの場合、デフォルトのバインディングは basicHttpBinding です。問題は、customBinding 構成がデフォルトのバインディングをオーバーライドしないことです。これにより、WCF は、もちろんサポートされていない basicHttpBinding で二重化を構成しようとします。この問題を解決するには、HTTP の既定のトランスポート マッピングをオフにして、このサービスについて以下に示すようにカスタム バインディングに割り当てます。
<protocolMapping>
<clear/> <!-- removes all defaults which you may or may not want. -->
<!-- If not, use <remove scheme="http" /> -->
<add scheme="http" binding="customBinding" bindingConfiguration="rspBinding"/>
</protocolMapping>
これを serviceModel 要素に追加すると、IIS ベースのサービスは問題なく動作しました。