我能够运行MSFT WCF样本下载附带的WCF-SecureProfile示例(http://msdn.microsoft.com/en-us/library/ee818238.aspx)
但是我无法将此服务器组件移植到IIS。我得到了错误
无法加载<MakeConnectionBindingElement/>
。考虑到我已加载行为扩展,我不知道为什么IIS无法看到扩展名,但我的应用程序的自主版本可以。
我将项目的源代码上传到codeplex中以便于浏览。这是直接link to web.config和所有其他文件。
答案 0 :(得分:1)
我得到了示例并将其设置为在IIS本地运行。我没有得到与这个问题中的问题相同的问题,但我遇到了一个大问题。访问IIS中的服务给了我这个错误消息:
合同需要Duplex,但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的服务就可以正常工作。