BasicHttpBinding 类

定义

表示 Windows Communication Foundation (WCF) 服务可用于配置和公开能够与基于 ASMX 的 Web 服务和客户端以及符合 WS-I 基本配置文件 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
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 服务或配置了 BasicHttpBinding 的 Windows Communication Foundation (WCF) 服务。

默认情况下,安全性处于关闭状态,但可以向构造函数以外的BasicHttpBinding(BasicHttpSecurityMode)None添加设置BasicHttpSecurityMode。 默认情况下,它使用“文本”消息编码和 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)

适用于