什么是在BasicHttpBinding端点配置中负责的bindingConfiguration属性?

时间:2011-08-12 17:13:35

标签: wcf

所以我正在为WCF服务配置端点。我几乎没有整体服务的经验,但是在使用它们的项目中间已经陷入困境。我大致了解端点中的每个属性除了一个属性之外的其他属性。 “bindingConfiguration”。

这是我的代码的模糊版本(实际信息是专有的):

      <endpoint address="http://localhost/SomeService.svc"
           binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISomeService"
           contract="SomeService.ICoreService" name="BasicHttpBinding_ISomeService" />

这是MSDN对它的看法(因为它们没有专门解决它)。

Microsoft's incomplete MSDN Entry

当然Stackoverflow有一些问题包含“bindingConfiguration”的字符串匹配,但没有一个问题可以解决我的问题:

Most relative (I think) Stackoverflow question

关于这个用途的任何想法?

为了学习,我愿意在这里采取刺痛和错误。我认为它与身份验证或安全性有关。在检查界面时,我也注意到与此无关。

任何帮助都会很棒!

干杯

马特

1 个答案:

答案 0 :(得分:15)

在绑定部分中,您可以为同一绑定类型(在您的情况下为basicHttpBinding)提供多个“配置”。绑定配置在其中选择使用哪一个。

在MSDN中,您应该尝试查找<endpoint>的引用(因为bindingConfiguration是属性),它将定义该属性应该执行的操作。

在下面的示例中,服务使用basicHttpBinding定义了两个端点。其中一个暴露在“普通”HTTP上,另一个暴露在HTTPS上。 bindingconfiguration属性是告诉WCF使用哪种配置的属性。

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="SimpleBasic">
                <security mode="None"/>
            </binding>
            <binding name="BasicOverHttps">
                <security mode="Transport"/>
            </binding>
        </basicHttpBinding>
    </bindings>
    <services>
        <service name="MyNamespace.MyService">
            <endpoint address="ep"
                      binding="basicHttpBinding"
                      bindingConfiguration="SimpleBasic"
                      contract="MyNamespace.IService" />
            <endpoint address="secure"
                      binding="basicHttpBinding"
                      bindingConfiguration="BasicOverHttps"
                      contract="MyNamespace.IService" />
        </service>
    </services>
</system.serviceModel>