HttpTransportBindingElement 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示用于指定 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。
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 消息的通道和侦听器。
您可以通过设置此类的属性来配置此类创建的工厂,例如:AuthenticationScheme、HostNameComparisonMode 和 MaxBufferSize。
您还可以设置基类 TransportBindingElement 上的属性,例如:ManualAddressing、MaxReceivedMessageSize 和 MaxBufferPoolSize。 有关完整的属性列表,请参见 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 中。 |