BasicHttpBinding 类

定义

表示 Windows Communication Foundation (WCF)服务可用来配置和公开终结点的绑定,这些终结点将能够与基于 ASMX 的 Web 服务和客户端以及其他符合 WS-I Basic Profile 1.1 的服务进行通信。

public ref class BasicHttpBinding : System::ServiceModel::HttpBindingBase
public ref class BasicHttpBinding : System::ServiceModel::Channels::Binding, System::ServiceModel::Channels::IBindingRuntimePreferences
public class BasicHttpBinding : System.ServiceModel.HttpBindingBase
public class BasicHttpBinding : System.ServiceModel.Channels.Binding, System.ServiceModel.Channels.IBindingRuntimePreferences
type BasicHttpBinding = class
    inherit HttpBindingBase
type BasicHttpBinding = class
    inherit Binding
    interface IBindingRuntimePreferences
type BasicHttpBinding = class
    inherit HttpBindingBase
    interface IBindingRuntimePreferences
Public Class BasicHttpBinding
Inherits HttpBindingBase
Public Class BasicHttpBinding
Inherits Binding
Implements IBindingRuntimePreferences
继承
BasicHttpBinding
继承
BasicHttpBinding
派生
实现

示例

下面的示例演示如何在应用程序配置文件中配置 BasicHttpBinding

下面的示例演示如何以编程方式配置 BasicHttpBinding

[ServiceContract(Namespace = "http://UE.ServiceModel.Samples")]
public interface ICalculator
{
    [OperationContract(IsOneWay = false)]
    double Add(double n1, double n2);
    [OperationContract(IsOneWay = false)]
    double Subtract(double n1, double n2);
    [OperationContract(IsOneWay = false)]
    double Multiply(double n1, double n2);
    [OperationContract(IsOneWay = false)]
    double Divide(double n1, double n2);
}

public class CalculatorService : ICalculator
{
    public double Add(double n1, double n2)
    {
        double result = n1 + n2;
        Console.WriteLine("Received Add({0},{1})", n1, n2);
        Console.WriteLine("Return: {0}", result);
        return result;
    }

    public double Subtract(double n1, double n2)
    {
        double result = n1 - n2;
        Console.WriteLine("Received Subtract({0},{1})", n1, n2);
        Console.WriteLine("Return: {0}", result);
        return result;
    }

    public double Multiply(double n1, double n2)
    {
        double result = n1 * n2;
        Console.WriteLine("Received Multiply({0},{1})", n1, n2);
        Console.WriteLine("Return: {0}", result);
        return result;
    }

    public double Divide(double n1, double n2)
    {
        double result = n1 / n2;
        Console.WriteLine("Received Divide({0},{1})", n1, n2);
        Console.WriteLine("Return: {0}", result);
        return result;
    }

    public static void Main()
    {
        BasicHttpBinding binding = new BasicHttpBinding();
        binding.Name = "binding1";
        binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
        binding.Security.Mode = BasicHttpSecurityMode.None;

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

        // Create a ServiceHost for the CalculatorService type and provide the base address.
        ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress);

        serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, address);

        // 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();

    }
}
   <ServiceContract(Namespace:="http://UE.ServiceModel.Samples")> _
   Public Interface ICalculator

       <OperationContract()> _
       Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
       <OperationContract()> _
       Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
       <OperationContract()> _
       Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
       <OperationContract()> _
       Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
   End Interface

   ' Service class which implements the service contract.
   ' Added code to write output to the console window
   Public Class CalculatorService
       Implements ICalculator

       Public Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double _
Implements ICalculator.Add

           Dim result As Double = n1 + n2
           Console.WriteLine("Received Add({0},{1})", n1, n2)
           Console.WriteLine("Return: {0}", result)
           Return result
       End Function

       Public Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double _
Implements ICalculator.Subtract

           Dim result As Double = n1 - n2
           Console.WriteLine("Received Subtract({0},{1})", n1, n2)
           Console.WriteLine("Return: {0}", result)
           Return result
       End Function

       Public Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double _
Implements ICalculator.Multiply

           Dim result As Double = n1 * n2
           Console.WriteLine("Received Multiply({0},{1})", n1, n2)
           Console.WriteLine("Return: {0}", result)
           Return result
       End Function

       Public Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double _
Implements ICalculator.Divide

           Dim result As Double = n1 / n2
           Console.WriteLine("Received Divide({0},{1})", n1, n2)
           Console.WriteLine("Return: {0}", result)
           Return result
       End Function

       Public Shared Sub Main()
           Dim binding As BasicHttpBinding = New BasicHttpBinding()
           binding.Name = "binding1"
           binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard
           binding.Security.Mode = BasicHttpSecurityMode.None

           Dim baseAddress As Uri = New Uri("http://localhost:8000/servicemodelsamples/service")
           Dim address As Uri = New Uri("http://localhost:8000/servicemodelsamples/service/calc")

           ' Create a ServiceHost for the CalculatorService type and provide the base address.
           Using serviceHost As ServiceHost = New ServiceHost(GetType(CalculatorService), baseAddress)

               serviceHost.AddServiceEndpoint(GetType(ICalculator), binding, address)

               ' Open the ServiceHost 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 ServiceHost to shutdown the service.
               serviceHost.Close()
           End Using
       End Sub
   End Class

注解

BasicHttpBinding 使用 HTTP 作为传输协议用于发送 SOAP 1.1 消息。 服务可以使用此绑定来公开符合 WS-I BP 1.1 标准的终结点,如 ASMX 客户端访问的终结点。 同样,客户端可以使用BasicHttpBinding服务与符合 WS-I BP 1.1 的服务进行通信,例如 ASMX Web 服务或 Windows Communication Foundation (WCF) 配置BasicHttpBinding的服务。

默认情况下,安全性处于禁用状态,但是通过在 BasicHttpSecurityMode 构造函数中将 None 设置为不同于 BasicHttpBinding(BasicHttpSecurityMode) 的值,可以添加安全性。 默认情况下,它使用“Text”消息编码和 UTF-8 文本编码。

构造函数

BasicHttpBinding()

初始化 BasicHttpBinding 类的新实例。

BasicHttpBinding(BasicHttpSecurityMode)

通过绑定所使用的指定安全性类型初始化 BasicHttpBinding 类的新实例。

BasicHttpBinding(String)

使用由配置名称指定的绑定初始化 BasicHttpBinding 类的新实例。

属性

AllowCookies

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

AllowCookies

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

(继承自 HttpBindingBase)
BypassProxyOnLocal

获取或设置一个值,该值指示是否跳过代理服务器而使用本地地址。

BypassProxyOnLocal

获取或设置一个值,该值指示是否跳过代理服务器而使用本地地址。

(继承自 HttpBindingBase)
CloseTimeout

获取或设置在传输引发异常之前可用于关闭连接的时间间隔。

(继承自 Binding)
EnableHttpCookieContainer
已过时。

获取或设置一个值,该值指示是否启用 HTTP Cookie 容器。

EnvelopeVersion

获取此绑定处理的消息将要使用的 SOAP 版本。

EnvelopeVersion

获取此绑定处理的消息将要使用的 SOAP 版本。

(继承自 HttpBindingBase)
HostNameComparisonMode

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

HostNameComparisonMode

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

(继承自 HttpBindingBase)
MaxBufferPoolSize

获取或设置为从通道接收消息的消息缓冲区管理器分配并供其使用的最大内存量(以字节为单位)。

MaxBufferPoolSize

获取或设置为从通道接收消息的消息缓冲区管理器分配并供其使用的最大内存量(以字节为单位)。

(继承自 HttpBindingBase)
MaxBufferSize

获取或设置缓冲区的最大大小(以字节为单位),该缓冲区用于接收来自通道的消息。

MaxBufferSize

获取或设置缓冲区的最大大小(以字节为单位),该缓冲区用于接收来自通道的消息。

(继承自 HttpBindingBase)
MaxReceivedMessageSize

获取或设置配置了此绑定配置的通道上可以接收的消息的最大大小(以字节为单位)。

MaxReceivedMessageSize

获取或设置配置了此绑定配置的通道上可以接收的消息的最大大小(以字节为单位)。

(继承自 HttpBindingBase)
MessageEncoding

获取或设置是使用 MTOM 还是文本对 SOAP 消息进行编码。

MessageVersion

获取由绑定所配置的客户端和服务使用的消息版本。

(继承自 Binding)
Name

获取或设置绑定的名称。

(继承自 Binding)
Namespace

获取或设置绑定的 XML 命名空间。

(继承自 Binding)
OpenTimeout

获取或设置在传输引发异常之前可用于打开连接的时间间隔。

(继承自 Binding)
ProxyAddress

获取或设置 HTTP 代理的 URI 地址。

ProxyAddress

获取或设置 HTTP 代理的 URI 地址。

(继承自 HttpBindingBase)
ReaderQuotas

获取或设置可由配置了此绑定的终结点处理的 SOAP 消息的复杂性约束。

ReaderQuotas

获取或设置可由配置了此绑定的终结点处理的 SOAP 消息的该复杂性约束。

(继承自 HttpBindingBase)
ReceiveTimeout

获取或设置连接在撤消之前保持非活动状态的最大时间间隔,在此时间间隔内未接收任何应用程序消息。

(继承自 Binding)
Scheme

获取用此绑定配置的通道和侦听器的 URI 传输方案。

Scheme

获取用此绑定配置的通道和侦听器的 URI 传输方案。

(继承自 HttpBindingBase)
Security

获取与此绑定一起使用的安全类型。

SendTimeout

获取或设置在传输引发异常之前可用于完成写入操作的时间间隔。

(继承自 Binding)
TextEncoding

获取或设置用于消息文本的字符编码。

TextEncoding

获取或设置用于消息文本的字符编码。

(继承自 HttpBindingBase)
TransferMode

获取或设置一个值,该值指示是通过缓冲处理还是流处理来发送消息。

TransferMode

获取或设置一个值,该值指示是通过缓冲处理还是流处理来发送消息。

(继承自 HttpBindingBase)
UseDefaultWebProxy

获取或设置一个值,该值指示是否应使用系统的自动配置 HTTP 代理(如果可用)。

UseDefaultWebProxy

获取或设置一个值,该值指示是否应使用系统的自动配置 HTTP 代理(如果可用)。

(继承自 HttpBindingBase)

方法

BuildChannelFactory<TChannel>(BindingParameterCollection)

在客户端上生成通道工厂堆栈,此通道工厂堆栈创建具有指定类型的通道并满足绑定参数集合所指定的功能。

BuildChannelFactory<TChannel>(BindingParameterCollection)

在客户端上生成通道工厂堆栈,此通道工厂堆栈创建具有指定类型的通道并满足绑定参数集合所指定的功能。

(继承自 Binding)
BuildChannelFactory<TChannel>(Object[])

在客户端上生成通道工厂堆栈,该通道工厂堆栈创建具有指定类型的通道并满足对象数组所指定的功能。

(继承自 Binding)
BuildChannelListener<TChannel>(BindingParameterCollection)

在服务上生成通道侦听器,该通道侦听器接受具有指定类型的通道并满足绑定参数集合所指定的功能。

(继承自 Binding)
BuildChannelListener<TChannel>(Object[])

在服务上生成通道侦听器,该通道侦听器接受具有指定类型的通道并满足所指定的功能。

(继承自 Binding)
BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

在服务上生成通道侦听器,该通道侦听器接受具有指定类型的通道并满足所指定的功能。

(继承自 Binding)
BuildChannelListener<TChannel>(Uri, Object[])

在服务上生成通道侦听器,该通道侦听器接受具有指定类型的通道并满足所指定的功能。

(继承自 Binding)
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

在服务上生成通道侦听器,该通道侦听器接受具有指定类型的通道并满足所指定的功能。

(继承自 Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

在服务上生成通道侦听器,该通道侦听器接受具有指定类型的通道并满足所指定的功能。

(继承自 Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

在服务上生成通道侦听器,该通道侦听器接受具有指定类型的通道并满足所指定的功能。

(继承自 Binding)
BuildChannelListener<TChannel>(Uri, String, Object[])

在服务上生成通道侦听器,该通道侦听器接受具有指定类型的通道并满足所指定的功能。

(继承自 Binding)
CanBuildChannelFactory<TChannel>(BindingParameterCollection)

返回一个值,该值指示当前绑定是否可以在客户端上生成满足指定绑定参数集合的通道工厂堆栈。

(继承自 Binding)
CanBuildChannelFactory<TChannel>(Object[])

返回一个值,该值指示当前绑定是否可以在客户端上生成满足对象数组所指定的需求的通道工厂堆栈。

(继承自 Binding)
CanBuildChannelListener<TChannel>(BindingParameterCollection)

返回一个值,该值指示当前绑定是否可以在服务上生成满足指定绑定参数集合的通道侦听器堆栈。

(继承自 Binding)
CanBuildChannelListener<TChannel>(Object[])

返回一个值,该值指示当前绑定是否可以在服务上生成满足对象数组所指定的条件的通道侦听器堆栈。

(继承自 Binding)
CreateBindingElements()

创建并返回一个包含在当前绑定中的已排序的绑定元素集合。

Equals(Object)

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

(继承自 Object)
GetHashCode()

作为默认哈希函数。

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

从绑定堆栈的适当层返回所请求的类型化对象(如果存在)。

(继承自 Binding)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ShouldSerializeEnableHttpCookieContainer()

指示是否 HTTP cookie 容器应启用序列化。

ShouldSerializeName()

返回是否应序列化绑定名称。

(继承自 Binding)
ShouldSerializeNamespace()

返回是否应序列化绑定命名空间。

(继承自 Binding)
ShouldSerializeReaderQuotas()

返回是否应序列化对 SOAP 消息结构的复杂性施加的约束值。

ShouldSerializeReaderQuotas()

返回是否应序列化对 SOAP 消息结构的复杂性施加的约束值。

(继承自 HttpBindingBase)
ShouldSerializeSecurity()

返回是否应基于是否已进行序列化(例如在消息级别或传输级别)来对安全设置进行序列化。

ShouldSerializeTextEncoding()

返回是否应对文本编码设置进行序列化。

ShouldSerializeTextEncoding()

返回是否应对文本编码设置进行序列化。

(继承自 HttpBindingBase)
ToString()

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

(继承自 Object)

显式接口实现

IBindingRuntimePreferences.ReceiveSynchronously

获取一个值,该值指示是同步处理传入请求还是异步处理传入请求。

IBindingRuntimePreferences.ReceiveSynchronously

获取一个值,该值指示是同步处理传入请求还是异步处理传入请求。

(继承自 HttpBindingBase)

适用于