WSHttpBindingBase Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece a classe base com membros comuns a WSHttpBinding e 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
- Herança
- Derivado
- Implementações
Exemplos
O exemplo a seguir mostra como usar a funcionalidade fornecida pela WSHttpBindingBase classe com as classes WSHttpBinding derivadas e 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
Comentários
O WSHttpBindingBase fornece algumas funcionalidades básicas para as associações usadas para configurar serviços Web seguros, confiáveis e interoperáveis, como o WSHttpBinding implementado pelo para contratos de serviço não duplex e, mais particularmente, para os seguros e interoperáveis WSFederationHttpBinding que dão suporte ao protocolo WS-Federation.
Por padrão, ele gera uma pilha em tempo de execução que usa WS-Security para segurança e autenticação de mensagens, HTTP para entrega de mensagens e uma codificação de mensagem text/XML. Ele pode ser configurado para usar também WS-ReliableMessaging para confiabilidade.
O uso de WS-ReliableMessaging é configurável usando o parâmetro opcional reliableSessionEnabled
.
Construtores
WSHttpBindingBase() |
Inicializa uma nova instância da classe WSHttpBindingBase. |
WSHttpBindingBase(Boolean) |
Inicializa uma nova instância da classe WSHttpBindingBase com um valor que indica se uma sessão confiável está habilitada. |
Propriedades
BypassProxyOnLocal |
Obtém ou define um valor que indica se o servidor de proxy deve ser ignorado para endereços locais. |
CloseTimeout |
Obtém ou define o intervalo concedido para que uma conexão seja fechada antes que o transporte gere uma exceção. (Herdado de Binding) |
EnvelopeVersion |
Obtém a versão do SOAP usada para as mensagens processadas por essa associação. |
HostNameComparisonMode |
Obtém ou define um valor que indica se o nome do host é usado para acessar o serviço ao corresponder ao URI. |
MaxBufferPoolSize |
Obtém ou define a quantidade máxima de memória alocada, em bytes, para o gerenciador de buffer que gerencia os buffers exigidos por pontos de extremidade que usam essa associação. |
MaxReceivedMessageSize |
Obtém ou define o tamanho máximo, em bytes, para uma mensagem recebida processada pela associação. |
MessageEncoding |
Obtém ou define se MTOM ou Texto/XML será usado para codificar mensagens SOAP. |
MessageVersion |
Obtém a versão de mensagem usada por clientes e serviços configurados com a associação. (Herdado de Binding) |
Name |
Obtém ou define o nome da associação. (Herdado de Binding) |
Namespace |
Obtém ou define o namespace de XML da associação. (Herdado de Binding) |
OpenTimeout |
Obtém ou define o intervalo concedido para que uma conexão seja aberta antes que o transporte gere uma exceção. (Herdado de Binding) |
ProxyAddress |
Obtém ou define o endereço do URI do proxy HTTP. |
ReaderQuotas |
Obtém ou define as restrições na complexidade das mensagens SOAP que podem ser processadas por pontos de extremidade configurados com essa associação. |
ReceiveTimeout |
Obtém ou define o intervalo de tempo que uma conexão pode permanecer inativa, durante o qual nenhuma mensagem de aplicativo é recebida, antes de seu descarte. (Herdado de Binding) |
ReliableSession |
Obtém um objeto que fornece acesso conveniente às propriedades de um elemento de associação de sessão confiável que estão disponíveis ao usar uma das associações fornecidas pelo sistema. |
Scheme |
Obtém o esquema de transporte de URI para os canais e os ouvintes que estão configurados com essa associação. |
SendTimeout |
Obtém ou define o intervalo concedido para uma operação ser concluída antes de o transporte gerar uma exceção. (Herdado de Binding) |
TextEncoding |
Obtém ou define a codificação de caracteres usada para o texto da mensagem. |
TransactionFlow |
Obtém ou define um valor que indica se essa associação deve dar suporte ao fluxo de WS-Transactions. |
UseDefaultWebProxy |
Obtém ou define um valor que indica se o proxy HTTP configurado automaticamente do sistema deve ser usado, se disponível. |
Métodos
BuildChannelFactory<TChannel>(BindingParameterCollection) |
Cria a pilha de fábricas de canais no cliente que cria um tipo de canal especificado e que satisfaz os recursos especificados por uma coleção de parâmetros de associação. (Herdado de Binding) |
BuildChannelFactory<TChannel>(Object[]) |
Cria a pilha de fábricas de canais no cliente que cria um tipo de canal especificado e que satisfaz os recursos especificados por uma matriz de objetos. (Herdado de Binding) |
BuildChannelListener<TChannel>(BindingParameterCollection) |
Cria o ouvinte de canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados por uma coleção de parâmetros de associação. (Herdado de Binding) |
BuildChannelListener<TChannel>(Object[]) |
Cria o ouvinte de canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados. (Herdado de Binding) |
BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
Cria o ouvinte de canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados. (Herdado de Binding) |
BuildChannelListener<TChannel>(Uri, Object[]) |
Cria o ouvinte de canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados. (Herdado de Binding) |
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
Cria o ouvinte de canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados. (Herdado de Binding) |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
Cria o ouvinte de canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados. (Herdado de Binding) |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
Cria o ouvinte de canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados. (Herdado de Binding) |
BuildChannelListener<TChannel>(Uri, String, Object[]) |
Cria o ouvinte de canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados. (Herdado de Binding) |
CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
Retorna um valor que indica se a associação atual pode criar uma pilha de fábricas de canais no cliente que satisfaz a coleção de parâmetros de associação especificados. (Herdado de Binding) |
CanBuildChannelFactory<TChannel>(Object[]) |
Retorna um valor que indica se a associação atual pode criar uma pilha de fábricas de canais no cliente que satisfaz os requisitos especificados por uma matriz de objetos. (Herdado de Binding) |
CanBuildChannelListener<TChannel>(BindingParameterCollection) |
Retorna um valor que indica se a associação atual pode criar uma pilha de ouvintes de canais no serviço que satisfaça a coleção de parâmetros de associação especificados. (Herdado de Binding) |
CanBuildChannelListener<TChannel>(Object[]) |
Retorna um valor que indica se a associação atual pode criar uma pilha de ouvintes de canais no serviço que satisfaça os critérios especificados em uma matriz de objetos. (Herdado de Binding) |
CreateBindingElements() |
Retorna uma coleção ordenada de elementos de associação contidos na associação atual. |
CreateMessageSecurity() |
Quando implementado em uma classe derivada, retorna o SecurityBindingElement da associação atual. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetProperty<T>(BindingParameterCollection) |
Retorna um objeto tipado solicitado, se presente, da camada apropriada na pilha de associação. (Herdado de Binding) |
GetTransport() |
Quando implementado em uma classe derivada, retorna o elemento de associação de transporte da associação atual. |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ShouldSerializeName() |
Retorna se o nome da associação deve ser serializado. (Herdado de Binding) |
ShouldSerializeNamespace() |
Retorna se o namespace da associação deve ser serializado. (Herdado de Binding) |
ShouldSerializeReaderQuotas() |
Retorna um valor que indica se a propriedade ReaderQuotas foi alterada do valor padrão e se deve ser serializada. |
ShouldSerializeReliableSession() |
Retorna um valor que indica se a propriedade ReliableSession foi alterada do valor padrão e se deve ser serializada. |
ShouldSerializeTextEncoding() |
Retorna um valor que indica se a propriedade TextEncoding foi alterada do valor padrão e se deve ser serializada. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
IBindingRuntimePreferences.ReceiveSynchronously |
Obtém um valor que indica se as solicitações de entrada são tratadas de forma síncrona ou assíncrona. |