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) |
Создает прослушиватель каналов заданного типа. |
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 для конечной точки. |