Windows Communication Foundation (WCF) 包含若干个系统提供的绑定,这些绑定允许您配置基础绑定元素的某些属性,但不是全部的属性。本主题演示如何设置绑定元素上的属性以创建自定义绑定。
有关 如何直接创建和配置绑定元素而不使用系统提供的绑定的更多信息,请参见自定义绑定。
有关 创建并扩展自定义绑定的更多信息,请参见扩展绑定。
在 WCF 中,所有绑定都由绑定元素**组成。每个绑定元素都是从 BindingElement 类派生的。系统提供的绑定(如 BasicHttpBinding)可创建和配置各自的绑定元素。本主题演示如何访问和更改这些绑定元素的属性,这些属性不会直接在绑定上公开,具体而言,这些属性不会直接在 BasicHttpBinding 类上公开。
各个绑定元素都包含在由 BindingElementCollection 类表示的集合中,并按如下顺序添加:事务流、可靠会话、安全、复合双工、单向、流安全、消息编码和传输协议。请注意,并不是每个绑定中都需要所列的所有绑定元素。用户定义的绑定元素也可以出现在此绑定元素集合中,但必须按前面所述的相同顺序出现。例如,用户定义的传输协议必须为绑定元素集合中的最后一个元素。
BasicHttpBinding 类包含三个绑定元素:
- 可选的安全绑定元素,即,与 HTTP 传输协议(消息级安全)一起使用的 AsymmetricSecurityBindingElement 类,或在传输协议层提供安全性时使用的 TransportSecurityBindingElement 类(这种情况下将使用 HTTPS 传输协议)。
- 必需的消息编码器绑定元素,即,TextMessageEncodingBindingElement 或 MtomMessageEncodingBindingElement。
- 必需的传输绑定元素,即,HttpTransportBindingElement 或 HttpsTransportBindingElement。
在此示例中,创建绑定的一个实例,并从中生成自定义绑定**,再检查自定义绑定中的绑定元素,在发现 HTTP 绑定元素时,将其 KeepAliveEnabled 属性设置为 false。由于在 BasicHttpBinding 上未直接公开 KeepAliveEnabled 属性,因此必须创建一个自定义绑定以向下导航至绑定元素,并设置此属性。
修改系统提供的绑定
创建 BasicHttpBinding 类的一个实例,并将其安全模式设置为消息级。
从该绑定创建一个自定义绑定,并从该自定义绑定的一个属性创建 BindingElementCollection 类。
循环通过 BindingElementCollection 类,并在查找 HttpTransportBindingElement 类时,将其 KeepAliveEnabled 属性设置为 false。
另请参见
参考
HttpTransportBindingElement
BasicHttpBinding
CustomBinding