Partilhar via


WSHttpBindingBase Classe

Definição

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
WSHttpBindingBase
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.

Aplica-se a