Поделиться через


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.

Модель службы WCF использует этот класс для создания объектов фабрики, реализующих IChannelFactory и IChannelListener интерфейсы. Эти объекты фабрики, в свою очередь, создают каналы и прослушиватели, которые передают сообщения SOAP с помощью протокола HTTP.

Вы настраиваете фабрики, создаваемые этим классом, задав его свойства, например AuthenticationScheme, HostNameComparisonModeи MaxBufferSize.

Вы также можете задать свойства базового класса, TransportBindingElementнапример ManualAddressing, MaxReceivedMessageSizeи MaxBufferPoolSize. Полный список свойств см. в разделе TransportBindingElement.

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

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

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

HttpTransportBindingElement(HttpTransportBindingElement)

Инициализирует новый экземпляр класса с помощью другого элемента привязки HttpTransportBindingElement .

Свойства

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

Возвращает или задает значение, указывающее, принимает ли клиент файлы 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

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

UseDefaultWebProxy

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

WebSocketSettings

Возвращает или задает конфигурацию веб-сокета элемента привязки.

Методы

Имя Описание
BuildChannelFactory<TChannel>(BindingContext)

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

BuildChannelListener<TChannel>(BindingContext)

Создает прослушиватель канала указанного типа.

CanBuildChannelFactory<TChannel>(BindingContext)

Определяет, можно ли создать фабрику каналов указанного типа.

CanBuildChannelListener<TChannel>(BindingContext)

Определяет, можно ли создать прослушиватель канала указанного типа.

Clone()

Создает новый экземпляр, который является копией текущего элемента привязки.

Equals(Object)

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

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

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

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

Возвращает свойство из указанного BindingContextобъекта.

GetType()

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

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

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

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

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

ShouldSerializeMessageHandlerFactory()

Определяет, следует ли сериализовать фабрику обработчика сообщений.

ShouldSerializeWebSocketSettings()

Определяет, следует ли сериализовать параметры веб-сокета.

ToString()

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

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

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

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

Имя Описание
IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

Экспортирует утверждение настраиваемой политики о привязках.

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

Записывает настраиваемые элементы языка описания веб-служб (WSDL) в созданный WSDL для контракта.

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

Записывает пользовательские элементы языка описания веб-служб (WSDL) в созданный WSDL для конечной точки.

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