HttpTransportBindingElement 类

定义

表示用于指定 HTTP 传输以传输消息的绑定元素。

public ref class HttpTransportBindingElement : System::ServiceModel::Channels::TransportBindingElement
public ref class HttpTransportBindingElement : System::ServiceModel::Channels::TransportBindingElement, System::ServiceModel::Description::IPolicyExportExtension, System::ServiceModel::Description::IWsdlExportExtension
public class HttpTransportBindingElement : System.ServiceModel.Channels.TransportBindingElement
public class HttpTransportBindingElement : System.ServiceModel.Channels.TransportBindingElement, System.ServiceModel.Description.IPolicyExportExtension, System.ServiceModel.Description.IWsdlExportExtension
type HttpTransportBindingElement = class
    inherit TransportBindingElement
type HttpTransportBindingElement = class
    inherit TransportBindingElement
    interface IWsdlExportExtension
    interface IPolicyExportExtension
Public Class HttpTransportBindingElement
Inherits TransportBindingElement
Public Class HttpTransportBindingElement
Inherits TransportBindingElement
Implements IPolicyExportExtension, IWsdlExportExtension
继承
HttpTransportBindingElement
派生
实现

示例

下面的代码演示如何以命令性方式使用 HttpTransportBindingElement

Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");

// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
    // Create a custom binding that contains two binding elements.
    ReliableSessionBindingElement reliableSession = new ReliableSessionBindingElement();
    reliableSession.Ordered = true;

    HttpTransportBindingElement httpTransport = new HttpTransportBindingElement();
    httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
    httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;

    CustomBinding binding = new CustomBinding(reliableSession, httpTransport);

    // Add an endpoint using that binding.
    serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, "");

    // Add a MEX endpoint.
    ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
    smb.HttpGetEnabled = true;
    smb.HttpGetUrl = new Uri("http://localhost:8001/servicemodelsamples");
    serviceHost.Description.Behaviors.Add(smb);

    // Open the ServiceHostBase to create listeners and start listening for messages.
    serviceHost.Open();

    // The service can now be accessed.
    Console.WriteLine("The service is ready.");
    Console.WriteLine("Press <ENTER> to terminate service.");
    Console.WriteLine();
    Console.ReadLine();

    // Close the ServiceHostBase to shutdown the service.
    serviceHost.Close();
}
Dim baseAddress As New Uri("http://localhost:8000/servicemodelsamples/service")

' Create a ServiceHost for the CalculatorService type and provide the base address.
Using serviceHost As New ServiceHost(GetType(CalculatorService), baseAddress)
    ' Create a custom binding that contains two binding elements.
    Dim reliableSession As New ReliableSessionBindingElement()
    reliableSession.Ordered = True

    Dim httpTransport As New HttpTransportBindingElement()
    httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous
    httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard

    Dim binding As New CustomBinding(reliableSession, httpTransport)

    ' Add an endpoint using that binding.
    serviceHost.AddServiceEndpoint(GetType(ICalculator), binding, "")

    ' Add a MEX endpoint.
    Dim smb As New ServiceMetadataBehavior()
    smb.HttpGetEnabled = True
    smb.HttpGetUrl = New Uri("http://localhost:8001/servicemodelsamples")
    serviceHost.Description.Behaviors.Add(smb)

    ' Open the ServiceHostBase to create listeners and start listening for messages.
    serviceHost.Open()

    ' The service can now be accessed.
    Console.WriteLine("The service is ready.")
    Console.WriteLine("Press <ENTER> to terminate service.")
    Console.WriteLine()
    Console.ReadLine()

    ' Close the ServiceHostBase to shutdown the service.
    serviceHost.Close()
End Using

HttpTransportBindingElement 还可以在配置文件中使用,如以下配置所示。

<bindings>  
  <customBinding>  
    <binding name="Binding1">  
      <reliableSession acknowledgementInterval="00:00:00.2000000" enableFlowControl="true"  
                        maxTransferWindowSize="32" inactivityTimeout="00:10:00" maxPendingChannels="128"  
                        maxRetryCount="8" ordered="true" />  
      <security mode="None"/>  
      <httpTransport authenticationScheme="Anonymous" bypassProxyOnLocal="false"  
                    hostNameComparisonMode="StrongWildcard"   
                    proxyAuthenticationScheme="Anonymous" realm=""   
                    useDefaultWebProxy="true" />  
    </binding>  
  </customBinding>  
</bindings>  

注解

HttpTransportBindingElement 类是创建实现 HTTP 传输协议的自定义绑定的起始点。 HTTP 是用于互操作性用途的主要传输。 Windows Communication Foundation (WCF) 支持此传输,以确保与其他非 WCF Web 服务堆栈的互操作性。

WCF 服务模型使用此类创建实现 和 IChannelListener 接口的IChannelFactory工厂对象。 这些工厂对象反过来创建使用 HTTP 协议传输 SOAP 消息的通道和侦听器。

您可以通过设置此类的属性来配置此类创建的工厂,例如:AuthenticationSchemeHostNameComparisonModeMaxBufferSize

您还可以设置基类 TransportBindingElement 上的属性,例如:ManualAddressingMaxReceivedMessageSizeMaxBufferPoolSize。 有关完整的属性列表,请参见 TransportBindingElement

构造函数

HttpTransportBindingElement()

初始化 HttpTransportBindingElement 类的新实例。

HttpTransportBindingElement(HttpTransportBindingElement)

初始化使用另一个绑定元素的 HttpTransportBindingElement 类的新实例。

属性

AllowCookies

获取或设置一个值,该值指示客户端是否接受 Cookie 并根据今后的请求传播 Cookie。

AuthenticationScheme

获取或设置身份验证方案,该方案用于验证 HTTP 侦听器所处理的客户端请求。

BypassProxyOnLocal

获取或设置一个值,该值指示是否为本地地址忽略代理。

DecompressionEnabled

获取或设置是否启用将压缩的消息数据还原为原始大小和格式的过程。

ExtendedProtectionPolicy

获取或设置服务器用来验证传入客户端连接的扩展安全策略的值。

HostNameComparisonMode

获取或设置一个值,该值指示在对 URI 进行匹配时,是否使用主机名来访问服务。

KeepAliveEnabled

获取或设置一个值,该值指示是否与服务终结点建立持久性连接。

ManualAddressing

获取或设置一个值,该值指示是否要求对消息进行手动寻址。

(继承自 TransportBindingElement)
MaxBufferPoolSize

获取或设置传输消息使用的任何缓冲池的最大字节大小。

(继承自 TransportBindingElement)
MaxBufferSize

获取或设置要使用的缓冲区的最大大小。 对于缓冲的消息,此值与 MaxReceivedMessageSize 相同。 对于经过流处理的消息,此值为必须以缓冲模式读取的 SOAP 标头的最大大小。

MaxPendingAccepts

获取或设置服务可以同时接受的最大连接数。

MaxReceivedMessageSize

获取或设置能接收的最大可允许消息大小(以字节为单位)。

(继承自 TransportBindingElement)
MessageHandlerFactory

获取或设置 Http 传输消息处理程序工厂。

Proxy

表示用于指定 HTTP 传输以传输消息的绑定元素。

ProxyAddress

获取或设置一个 URI,包含要用于 HTTP 请求的代理地址。

ProxyAuthenticationScheme

获取或设置用于对 HTTP 代理所处理的客户端请求进行身份验证的身份验证方案。

Realm

获取或设置身份验证领域。

RequestInitializationTimeout

获取或设智请求初始化超时。

Scheme

获取传输的 URI 方案。

TransferMode

获取或设置传输模式。

UnsafeConnectionNtlmAuthentication

获取或设置一个值,该值指示是否在服务器上启用不安全连接共享。 如果启用,将对每个 TCP 连接执行一次 NTLM 身份验证。

UseDefaultWebProxy

获取或设置一个值,该值指示是否使用计算机范围的代理设置,而不使用用户特定的设置。

WebSocketSettings

获取或设置绑定元素的 Web 套接配置。

方法

BuildChannelFactory<TChannel>(BindingContext)

创建可用于创建通道的通道工厂。

BuildChannelListener<TChannel>(BindingContext)

创建指定类型的通道侦听器。

BuildChannelListener<TChannel>(BindingContext)

初始化通道侦听器,用于接受绑定上下文中指定类型的通道。

(继承自 BindingElement)
CanBuildChannelFactory<TChannel>(BindingContext)

确定是否可生成指定类型的通道工厂。

CanBuildChannelListener<TChannel>(BindingContext)

确定是否可生成指定类型的通道侦听器。

CanBuildChannelListener<TChannel>(BindingContext)

返回一个值,该值指示绑定元素是否可以为特定类型的通道生成侦听器。

(继承自 BindingElement)
Clone()

创建作为当前绑定元素的副本的新实例。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetProperty<T>(BindingContext)

从指定的 BindingContext 获取属性。

GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ShouldSerializeExtendedProtectionPolicy()

返回一个表明不可能对扩展保护策略进行 XAML 序列化的值。

ShouldSerializeMessageHandlerFactory()

确定消息处理工厂是否应该进行程序化。

ShouldSerializeWebSocketSettings()

确定web套接设置是否应序列化。

ToString()

返回表示当前对象的字符串。

(继承自 Object)
UpdateAuthenticationSchemes(BindingContext)

更新包含绑定上下文的传输身份验证方案。

显式接口实现

IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

导出有关绑定的自定义策略断言。

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

为协定将自定义 Web 服务描述语言 (WSDL) 元素写入到生成的 WSDL 中。

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

为终结点将自定义 Web 服务描述语言 (WSDL) 元素写入到生成的 WSDL 中。

适用于