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.
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 для конечной точки. |