WSHttpBindingBase Classe

Definição

Fornece à classe base membros comuns aos WSHttpBinding e aos 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
WSHttpBindingBase
Derivado
Implementações

Exemplos

O exemplo seguinte mostra como usar a funcionalidade fornecida pela WSHttpBindingBase classe com as classes derivadas, WSHttpBinding 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

Observações

Fornece WSHttpBindingBase algumas funcionalidades básicas para as ligações usadas para configurar serviços Web seguros, fiáveis e interoperáveis, como o implementado WSHttpBinding pelos contratos de serviços não-duplex e, mais particularmente, para o seguro e interoperável WSFederationHttpBinding que suporta o protocolo WS-Federation.

Por defeito, gera uma pilha em tempo de execução que utiliza WS-Security para segurança e autenticação de mensagens, HTTP para entrega de mensagens e codificação de mensagens de texto/XML. Pode ser configurado para também usar WS-ReliableMessaging fiabilidade.

O uso de WS-ReliableMessaging é configurável usando o parâmetro opcional reliableSessionEnabled .

Construtores

Name Description
WSHttpBindingBase()

Inicializa uma nova instância da WSHttpBindingBase classe.

WSHttpBindingBase(Boolean)

Inicializa uma nova instância da WSHttpBindingBase classe com um valor que indica se uma sessão fiável está ativada.

Propriedades

Name Description
BypassProxyOnLocal

Recebe ou define um valor que indica se deve contornar o servidor proxy para endereços locais.

CloseTimeout

Obtém ou define o intervalo de tempo fornecido para que uma ligação se feche antes de o transporte levantar uma exceção.

(Herdado de Binding)
EnvelopeVersion

Obtém a versão do SOAP usada para mensagens processadas por esta ligação.

HostNameComparisonMode

Recebe ou define um valor que indica se o nome do host é usado para chegar ao serviço ao corresponder ao URI.

MaxBufferPoolSize

Obtém ou define a quantidade máxima de memória alocada, em bytes, para o gestor de buffers que gere os buffers necessários pelos endpoints usando esta ligação.

MaxReceivedMessageSize

Obtém ou define o tamanho máximo, em bytes, para uma mensagem que pode ser processada pelo binding.

MessageEncoding

Obtém ou define se MTOM ou Text/XML é usado para codificar mensagens SOAP.

MessageVersion

Obtém a versão da mensagem usada por clientes e serviços configurada com a ligação.

(Herdado de Binding)
Name

Recebe ou define o nome da ligação.

(Herdado de Binding)
Namespace

Obtém ou define o namespace XML do binding.

(Herdado de Binding)
OpenTimeout

Obtém ou define o intervalo de tempo fornecido para que uma ligação se abra antes de o transporte levantar uma exceção.

(Herdado de Binding)
ProxyAddress

Obtém ou define o endereço URI do proxy HTTP.

ReaderQuotas

Obtém ou define restrições sobre a complexidade das mensagens SOAP que podem ser processadas por endpoints configurados com esta ligação.

ReceiveTimeout

Obtém ou define o intervalo de tempo em que uma ligação pode permanecer inativa, durante o qual não são recebidas mensagens de aplicação, antes de ser cortada.

(Herdado de Binding)
ReliableSession

Obtém um objeto que oferece acesso conveniente às propriedades de um elemento fiável de ligação de sessão disponível ao usar uma das ligações fornecidas pelo sistema.

Scheme

Obtém o esquema de transporte URI para os canais e ouvintes configurados com esta ligação.

SendTimeout

Obtém ou define o intervalo de tempo fornecido para que uma operação de escrita seja concluída antes de o transporte levantar uma exceção.

(Herdado de Binding)
TextEncoding

Obtém ou define a codificação de caracteres usada para o texto da mensagem.

TransactionFlow

Recebe ou define um valor que indica se esta ligação deve suportar transações WS fluídas.

UseDefaultWebProxy

Recebe ou define um valor que indica se o proxy HTTP auto-configurado do sistema deve ser utilizado, se disponível.

Métodos

Name Description
BuildChannelFactory<TChannel>(BindingParameterCollection)

Constrói a pilha de channel factory no cliente que cria um tipo específico de canal e que satisfaz as características especificadas por um conjunto de parâmetros de ligação.

(Herdado de Binding)
BuildChannelFactory<TChannel>(Object[])

Constrói a stack de channel factory no cliente que cria um tipo específico de canal e que satisfaz as características especificadas por um array de objetos.

(Herdado de Binding)
BuildChannelListener<TChannel>(BindingParameterCollection)

Constrói o ouvinte de canal no serviço que aceita um tipo específico de canal e que satisfaz as características especificadas por um conjunto de parâmetros de ligação.

(Herdado de Binding)
BuildChannelListener<TChannel>(Object[])

Constrói o ouvinte de canal no serviço que aceita um tipo específico de canal e que satisfaz as funcionalidades especificadas.

(Herdado de Binding)
BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Constrói o ouvinte de canal no serviço que aceita um tipo específico de canal e que satisfaz as funcionalidades especificadas.

(Herdado de Binding)
BuildChannelListener<TChannel>(Uri, Object[])

Constrói o ouvinte de canal no serviço que aceita um tipo específico de canal e que satisfaz as funcionalidades especificadas.

(Herdado de Binding)
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Constrói o ouvinte de canal no serviço que aceita um tipo específico de canal e que satisfaz as funcionalidades especificadas.

(Herdado de Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Constrói o ouvinte de canal no serviço que aceita um tipo específico de canal e que satisfaz as funcionalidades especificadas.

(Herdado de Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Constrói o ouvinte de canal no serviço que aceita um tipo específico de canal e que satisfaz as funcionalidades especificadas.

(Herdado de Binding)
BuildChannelListener<TChannel>(Uri, String, Object[])

Constrói o ouvinte de canal no serviço que aceita um tipo específico de canal e que satisfaz as funcionalidades especificadas.

(Herdado de Binding)
CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Devolve um valor que indica se a ligação atual pode construir uma pilha de channel factory no cliente que satisfaz a coleção de parâmetros de ligação especificada.

(Herdado de Binding)
CanBuildChannelFactory<TChannel>(Object[])

Devolve um valor que indica se a ligação atual pode construir uma stack de channel factory no cliente que satisfaz os requisitos especificados por um array de objetos.

(Herdado de Binding)
CanBuildChannelListener<TChannel>(BindingParameterCollection)

Devolve um valor que indica se a ligação atual pode construir uma pilha de ouvintes de canal no serviço que satisfaz a coleção de parâmetros de ligação especificada.

(Herdado de Binding)
CanBuildChannelListener<TChannel>(Object[])

Devolve um valor que indica se a ligação atual pode construir uma pilha de ouvintes de canal no serviço que satisfaça os critérios especificados num array de objetos.

(Herdado de Binding)
CreateBindingElements()

Devolve uma coleção ordenada de elementos de ligação contidos na ligação atual.

CreateMessageSecurity()

Quando implementado numa classe derivada, devolve o SecurityBindingElement da ligação corrente.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetProperty<T>(BindingParameterCollection)

Devolve um objeto tipado solicitado, se presente, da camada apropriada na pilha de ligação.

(Herdado de Binding)
GetTransport()

Quando implementado numa classe derivada, devolve o elemento de ligação de transporte da ligação atual.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ShouldSerializeName()

Devolve se o nome da ligação deve ser serializado.

(Herdado de Binding)
ShouldSerializeNamespace()

Devolve se o namespace da ligação deve ser serializado.

(Herdado de Binding)
ShouldSerializeReaderQuotas()

Devolve um valor que indica se a ReaderQuotas propriedade mudou em relação ao seu valor padrão e deve ser serializada.

ShouldSerializeReliableSession()

Devolve um valor que indica se a ReliableSession propriedade mudou em relação ao seu valor padrão e deve ser serializada.

ShouldSerializeTextEncoding()

Devolve um valor que indica se a TextEncoding propriedade mudou em relação ao seu valor padrão e deve ser serializada.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Name Description
IBindingRuntimePreferences.ReceiveSynchronously

Recebe um valor que indica se os pedidos recebidos são tratados de forma síncrona ou assíncrona.

Aplica-se a