Я получил образец и настроил его для работы на IIS local. У меня не было той же проблемы, что и в этом вопросе, но я столкнулся с большой ошибкой. Доступ к службе в IIS дал мне это сообщение об ошибке:
Для контракта требуется дуплекс, но Binding 'BasicHttpBinding' не поддерживает его или неправильно настроен для его поддержки.
После некоторых царапин на голове я нашел причину этой проблемы. 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 работала просто отлично.