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


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)

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

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

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

ToString()

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

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

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

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

IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

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

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

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

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

Записывает пользовательские элементы WSDL в созданный код WSDL для конечной точки.

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