WSHttpBindingBase Класс

Определение

Предоставляет базовый класс с элементами, общими для WSHttpBinding и WSFederationHttpBinding.

public ref class WSHttpBindingBase abstract : System::ServiceModel::Channels::Binding
public ref class WSHttpBindingBase abstract : System::ServiceModel::Channels::Binding, System::ServiceModel::Channels::IBindingRuntimePreferences
public abstract class WSHttpBindingBase : System.ServiceModel.Channels.Binding
public abstract class WSHttpBindingBase : System.ServiceModel.Channels.Binding, System.ServiceModel.Channels.IBindingRuntimePreferences
type WSHttpBindingBase = class
    inherit Binding
type WSHttpBindingBase = class
    inherit Binding
    interface IBindingRuntimePreferences
Public MustInherit Class WSHttpBindingBase
Inherits Binding
Public MustInherit Class WSHttpBindingBase
Inherits Binding
Implements IBindingRuntimePreferences
Наследование
WSHttpBindingBase
Производный
Реализации

Примеры

В следующем примере показано, как использовать функциональные возможности, предоставляемые WSHttpBindingBase классом с производными классами, WSHttpBinding и WSFederationHttpBinding.


// Define a service contract for the calculator.
[ServiceContract()]
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);
}

// Service class which implements the service contract.
public class CalculatorService : ICalculator
{
    public double Add(double n1, double n2)
    {
        double result = n1 + n2;
        return result;
    }

    public double Subtract(double n1, double n2)
    {
        double result = n1 - n2;
        return result;
    }

    public double Multiply(double n1, double n2)
    {
        double result = n1 * n2;
        return result;
    }

    public double Divide(double n1, double n2)
    {
        double result = n1 / n2;
        return result;
    }

    // Create and configure bindings within this EXE console application.
    public static void Main()
    {
        // Create a WSHttpBinding
        WSHttpBinding binding1 = new WSHttpBinding();

    binding1.BypassProxyOnLocal =  true;

    EnvelopeVersion envelopeVersion =
    binding1.EnvelopeVersion;

    HostNameComparisonMode hostnameComparisonMode =
    binding1.HostNameComparisonMode;

    long maxBufferPoolSize =
        binding1.MaxBufferPoolSize;

    long maxReceivedMessageSize =
    binding1.MaxReceivedMessageSize;

    WSMessageEncoding messageEncoding =
    binding1.MessageEncoding;

    Uri proxyAddress =
        binding1.ProxyAddress;

    XmlDictionaryReaderQuotas readerQuotas =
    binding1.ReaderQuotas;

    OptionalReliableSession reliableSession =
    binding1.ReliableSession;

    string scheme = binding1.Scheme;

    Encoding textEncoding =
        binding1.TextEncoding;

    bool transactionFlow =
        binding1.TransactionFlow;

    bool useDefaultWebProxy =
        binding1.UseDefaultWebProxy;

    BindingElementCollection bindingElements =
            binding1.CreateBindingElements();

        // Set WSHttpBinding binding property values
        binding1.Name = "Binding1";
        binding1.HostNameComparisonMode =
           HostNameComparisonMode.StrongWildcard;
        binding1.Security.Mode = SecurityMode.Message;
        binding1.ReliableSession.Enabled = false;
        binding1.TransactionFlow = false;
       // binding1.Security.Message.DefaultProtectionLevel = System.Net.Security.ProtectionLevel.EncryptAndSign;

        // Enumerate properties of the binding1.
        Console.WriteLine("WSHttpBinding binding1 properties:");
        Console.WriteLine("      - name:\t\t\t{0}", binding1.Name);
        Console.WriteLine("      - hostname comparison:\t{0}", binding1.HostNameComparisonMode);
        Console.WriteLine("      - security mode:\t\t{0}", binding1.Security.Mode);
        Console.WriteLine("      - RM enabled:\t\t{0}", binding1.ReliableSession.Enabled);
        Console.WriteLine("      - transaction flow:\t{0}", binding1.TransactionFlow);
        //Console.WriteLine("      - message security:\t{0}", binding1.Security.Message.DefaultProtectionLevel);
        Console.WriteLine("      - transport scheme:\t{0}", binding1.Scheme);
        Console.WriteLine("      - max message size:\t{0}", binding1.MaxReceivedMessageSize);
        Console.WriteLine("      - default text encoding:\t{0}", binding1.TextEncoding);
        Console.WriteLine();

        // Create a WSFederationBinding with a message security mode
        // and with a reliable session enabled.
        WSFederationHttpBinding binding3 = new WSFederationHttpBinding(WSFederationHttpSecurityMode.Message, true);

        // Enumerate properties of the binding2.
        Console.WriteLine("WSFederationBinding binding3 properties:");
        Console.WriteLine("      - security mode:\t\t{0}", binding3.Security.Mode);
        Console.WriteLine("      - RM enabled:\t\t{0}", binding3.ReliableSession.Enabled);
        Console.WriteLine();
        Console.WriteLine("Press <ENTER> to terminate.");
        Console.ReadLine();
    }

static void SnippetReceiveSynchronously ()
{
    WSHttpBinding binding = new WSHttpBinding();
    IBindingRuntimePreferences s  =
                       binding.GetProperty<IBindingRuntimePreferences>
                       (new BindingParameterCollection());
    bool receiveSynchronously = s.ReceiveSynchronously;
}
}

' Define a service contract for the calculator.
<ServiceContract()> _
Public Interface ICalculator
    <OperationContract(IsOneWay := False)> _
    Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
    <OperationContract(IsOneWay := False)> _
    Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
    <OperationContract(IsOneWay := False)> _
    Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
    <OperationContract(IsOneWay := False)> _
    Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
End Interface

' Service class which implements the service contract.
Public Class CalculatorService
    Implements ICalculator
    Public Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Add
        Dim result = n1 + n2
        Return result
    End Function

    Public Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Subtract
        Dim result = n1 - n2
        Return result
    End Function

    Public Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Multiply
        Dim result = n1 * n2
        Return result
    End Function

    Public Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Divide
        Dim result = n1 / n2
        Return result
    End Function

    ' Create and configure bindings within this EXE console application.
    Public Shared Sub Main()
        ' Create a WSHttpBinding
        Dim binding1 As New WSHttpBinding()

    binding1.BypassProxyOnLocal = True

    Dim envelopeVersion As EnvelopeVersion = binding1.EnvelopeVersion

    Dim hostnameComparisonMode As HostNameComparisonMode = binding1.HostNameComparisonMode

        Dim maxBufferPoolSize = binding1.MaxBufferPoolSize


        Dim maxReceivedMessageSize = binding1.MaxReceivedMessageSize

    Dim messageEncoding As WSMessageEncoding = binding1.MessageEncoding

    Dim proxyAddress As Uri = binding1.ProxyAddress

    Dim readerQuotas As XmlDictionaryReaderQuotas = binding1.ReaderQuotas

    Dim reliableSession As OptionalReliableSession = binding1.ReliableSession

        Dim scheme = binding1.Scheme

        Dim textEncoding = binding1.TextEncoding

        Dim transactionFlow = binding1.TransactionFlow

        Dim useDefaultWebProxy = binding1.UseDefaultWebProxy

    Dim bindingElements As BindingElementCollection = binding1.CreateBindingElements()

        ' Set WSHttpBinding binding property values
        binding1.Name = "Binding1"
        binding1.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard
        binding1.Security.Mode = SecurityMode.Message
        binding1.ReliableSession.Enabled = False
        binding1.TransactionFlow = False
       ' binding1.Security.Message.DefaultProtectionLevel = System.Net.Security.ProtectionLevel.EncryptAndSign;

        ' Enumerate properties of the binding1.
        Console.WriteLine("WSHttpBinding binding1 properties:")
        Console.WriteLine("      - name:" & Constants.vbTab + Constants.vbTab + Constants.vbTab & "{0}", binding1.Name)
        Console.WriteLine("      - hostname comparison:" & Constants.vbTab & "{0}", binding1.HostNameComparisonMode)
        Console.WriteLine("      - security mode:" & Constants.vbTab + Constants.vbTab & "{0}", binding1.Security.Mode)
        Console.WriteLine("      - RM enabled:" & Constants.vbTab + Constants.vbTab & "{0}", binding1.ReliableSession.Enabled)
        Console.WriteLine("      - transaction flow:" & Constants.vbTab & "{0}", binding1.TransactionFlow)
        'Console.WriteLine("      - message security:\t{0}", binding1.Security.Message.DefaultProtectionLevel);
        Console.WriteLine("      - transport scheme:" & Constants.vbTab & "{0}", binding1.Scheme)
        Console.WriteLine("      - max message size:" & Constants.vbTab & "{0}", binding1.MaxReceivedMessageSize)
        Console.WriteLine("      - default text encoding:" & Constants.vbTab & "{0}", binding1.TextEncoding)
        Console.WriteLine()

        ' Create a WSFederationBinding with a message security mode
        ' and with a reliable session enabled.
        Dim binding3 As New WSFederationHttpBinding(WSFederationHttpSecurityMode.Message, True)

        ' Enumerate properties of the binding2.
        Console.WriteLine("WSFederationBinding binding3 properties:")
        Console.WriteLine("      - security mode:" & Constants.vbTab + Constants.vbTab & "{0}", binding3.Security.Mode)
        Console.WriteLine("      - RM enabled:" & Constants.vbTab + Constants.vbTab & "{0}", binding3.ReliableSession.Enabled)
        Console.WriteLine()
        Console.WriteLine("Press <ENTER> to terminate.")
        Console.ReadLine()

    End Sub

Private Shared Sub SnippetReceiveSynchronously()
    Dim binding As New WSHttpBinding()
    Dim s As IBindingRuntimePreferences = binding.GetProperty(Of IBindingRuntimePreferences) (New BindingParameterCollection())
        Dim receiveSynchronously = s.ReceiveSynchronously

End Sub

End Class

Комментарии

Предоставляет WSHttpBindingBase некоторые основные функциональные возможности для привязок, используемых для настройки безопасных, надежных и совместимых веб-служб, таких как реализованные WSHttpBinding контрактами служб, не дуплексными, и более особенно для безопасного и взаимодействия WSFederationHttpBinding , поддерживающего протокол WS-Federation.

По умолчанию он создает стек времени выполнения, который использует WS-Security для обеспечения безопасности сообщений и проверки подлинности, HTTP для доставки сообщений и кодировки текстовых и XML-сообщений. Его можно настроить для использования WS-ReliableMessaging для надежности.

Использование WS-ReliableMessaging настраивается с помощью необязательного reliableSessionEnabled параметра.

Конструкторы

Имя Описание
WSHttpBindingBase()

Инициализирует новый экземпляр класса WSHttpBindingBase.

WSHttpBindingBase(Boolean)

Инициализирует новый экземпляр WSHttpBindingBase класса со значением, указывающим, включен ли надежный сеанс.

Свойства

Имя Описание
BypassProxyOnLocal

Возвращает или задает значение, указывающее, следует ли обойти прокси-сервер для локальных адресов.

CloseTimeout

Возвращает или задает интервал времени, предоставленный для закрытия соединения перед тем, как транспорт вызывает исключение.

(Унаследовано от Binding)
EnvelopeVersion

Возвращает версию SOAP, которая используется для сообщений, обрабатываемых этой привязкой.

HostNameComparisonMode

Возвращает или задает значение, указывающее, используется ли имя узла для достижения службы при сопоставлении URI.

MaxBufferPoolSize

Возвращает или задает максимальный объем памяти, выделенный в байтах, для диспетчера буферов, который управляет буферами, необходимыми конечными точками с помощью этой привязки.

MaxReceivedMessageSize

Возвращает или задает максимальный размер в байтах для сообщения, которое может обрабатываться привязкой.

MessageEncoding

Возвращает или задает, используется ли MTOM или Text/XML для кодирования сообщений SOAP.

MessageVersion

Возвращает версию сообщения, используемую клиентами и службами, настроенными с привязкой.

(Унаследовано от Binding)
Name

Возвращает или задает имя привязки.

(Унаследовано от Binding)
Namespace

Возвращает или задает пространство имен XML привязки.

(Унаследовано от Binding)
OpenTimeout

Возвращает или задает интервал времени, предоставленный для открытия подключения, прежде чем транспорт вызывает исключение.

(Унаследовано от Binding)
ProxyAddress

Возвращает или задает URI-адрес прокси-сервера HTTP.

ReaderQuotas

Возвращает или задает ограничения сложности сообщений SOAP, которые могут обрабатываться конечными точками, настроенными с помощью этой привязки.

ReceiveTimeout

Возвращает или задает интервал времени, в течение которого соединение не может оставаться неактивным, в течение которого сообщения приложения не будут получены до удаления.

(Унаследовано от Binding)
ReliableSession

Получает объект, предоставляющий удобный доступ к свойствам элемента привязки надежного сеанса, который доступен при использовании одной из системных привязок.

Scheme

Получает схему транспорта URI для каналов и прослушивателей, настроенных с этой привязкой.

SendTimeout

Возвращает или задает интервал времени, предоставленный для выполнения операции записи перед тем, как транспорт вызывает исключение.

(Унаследовано от Binding)
TextEncoding

Возвращает или задает кодировку символов, используемую для текста сообщения.

TransactionFlow

Возвращает или задает значение, указывающее, должна ли эта привязка поддерживать поток WS-Transactions.

UseDefaultWebProxy

Возвращает или задает значение, указывающее, следует ли использовать автоматически настроенный HTTP-прокси системы, если он доступен.

Методы

Имя Описание
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()

Возвращает упорядоченную коллекцию элементов привязки, содержащихся в текущей привязке.

CreateMessageSecurity()

При реализации в производном классе возвращается SecurityBindingElement из текущей привязки.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetProperty<T>(BindingParameterCollection)

Возвращает типизированный объект, запрошенный, если он присутствует, из соответствующего слоя в стеке привязки.

(Унаследовано от Binding)
GetTransport()

При реализации в производном классе возвращает элемент привязки транспорта из текущей привязки.

GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ShouldSerializeName()

Возвращает, следует ли сериализовать имя привязки.

(Унаследовано от Binding)
ShouldSerializeNamespace()

Возвращает, следует ли сериализовать пространство имен привязки.

(Унаследовано от Binding)
ShouldSerializeReaderQuotas()

Возвращает значение, указывающее, изменилось ли ReaderQuotas свойство со значения по умолчанию и должно быть сериализовано.

ShouldSerializeReliableSession()

Возвращает значение, указывающее, изменилось ли ReliableSession свойство со значения по умолчанию и должно быть сериализовано.

ShouldSerializeTextEncoding()

Возвращает значение, указывающее, изменилось ли TextEncoding свойство со значения по умолчанию и должно быть сериализовано.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
IBindingRuntimePreferences.ReceiveSynchronously

Возвращает значение, указывающее, обрабатываются ли входящие запросы синхронно или асинхронно.

Применяется к