1

我能够运行 MSFT WCF 示例下载 ( http://msdn.microsoft.com/en-us/library/ee818238.aspx )附带的 WCF-SecureProfile 示例

但是我不能将此服务器组件移植到 IIS。我收到 <MakeConnectionBindingElement/>无法加载的错误。考虑到我加载了行为扩展,我不知道为什么 IIS 看不到扩展,但是我的应用程序的自托管版本可以。在此处输入图像描述

我将项目的源代码上传到 codeplex 以方便浏览。这是指向 web.config和所有其他文件的直接链接。

在此处输入图像描述2

4

1 回答 1

1

我得到了示例并将其设置为在本地 IIS 上运行。我没有遇到与这个问题相同的问题,但我确实遇到了一个大问题。在 IIS 中访问服务给了我这个错误消息:

合同需要 Duplex,但绑定“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 的服务就可以正常工作。

于 2011-05-09T19:09:24.903 回答