Binding 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.
Contém os elementos de associação que especifica os protocolos, transportes e codificadores de mensagem usados para comunicação entre clientes e serviços.
public ref class Binding abstract : System::ServiceModel::IDefaultCommunicationTimeouts
public abstract class Binding : System.ServiceModel.IDefaultCommunicationTimeouts
type Binding = class
interface IDefaultCommunicationTimeouts
Public MustInherit Class Binding
Implements IDefaultCommunicationTimeouts
- Herança
-
Binding
- Derivado
- Implementações
Exemplos
BasicHttpBinding binding = new BasicHttpBinding();
binding.Name = "binding1";
Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");
Uri address = new Uri("http://localhost:8000/servicemodelsamples/service/calc");
// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, address);
// 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();
}
Comentários
Representa uma coleção de elementos de associação, cada um deles descreve um aspecto de como um ponto de extremidade se comunica com outros pontos de extremidade e que são criados, consistentemente, em uma fábrica de canais no cliente e em um ouvinte de canal no serviço. Uma associação contém uma coleção de elementos de associação que correspondem a canais de protocolo, canais de transporte e codificadores de mensagens. Pode haver qualquer número de elementos de associação para canais de protocolo, mas apenas um elemento de associação para cada codificador de transporte e mensagem. Normalmente, há seis camadas de elementos de associação em uma associação. Somente os elementos de associação de transporte e codificação na parte inferior da pilha são necessários. Como uma codificação é necessária para cada associação, se uma codificação não for especificada, o WCF (Windows Communication Foundation) adicionará uma codificação padrão para você. O padrão é Texto/XML para os transportes HTTP e HTTPS e Binário para outros transportes.
A tabela a seguir resume as opções para cada camada.
Camada | Opções | Obrigatório |
---|---|---|
Fluxo de transação | TransactionFlowBindingElement | Não |
Confiabilidade | ReliableSessionBindingElement | Não |
Segurança | Simétrico, assimétrico, nível de transporte | Não |
Alteração de forma | CompositeDuplexBindingElement | Não |
Atualizações de transporte | Fluxo SSL, fluxo do Windows, Resolvedor de Pares | Não |
Codificação | Texto, Binário, MTOM, Personalizado | Yes |
Transport | TCP, Pipes nomeados, HTTP, HTTPS, MSMQ, Personalizado | Yes |
Cada elemento de associação fornece a especificação para criar uma fábrica de canais no cliente e um ouvinte de canal no serviço. Quando a pilha de fábrica de canais é construída, por exemplo, há uma fábrica de canais na pilha para cada elemento de associação na associação. O mesmo tipo de mapeamento se aplica aos ouvintes de canal na pilha no serviço. A consistência no cliente e no serviço é essencial para estabelecer a conexão baseada em canal entre esses pontos de extremidade. Cada fábrica e ouvinte, por sua vez, processa o envio e a aceitação dos canais correspondentes na pilha de canais que os conecta, e esses canais podem enviar e receber as mensagens usadas para se comunicar.
Cada instância de um Binding tem um Name e Namespace que juntos a identificam exclusivamente nos metadados do serviço. Se nenhum nome ou namespace for especificado, o WCF adicionará valores padrão para você. O nome padrão é null
e o namespace padrão é http://tempuri.org/
. Esse nome de usuário para a associação é distinto da especificação do nome do protocolo, que é especificado pela Scheme propriedade . Se você quiser adicionar mais associações HTTP, por exemplo, poderá nomeá-las como desejar e definir todos os esquemas como "http". Não há nenhum aplicativo inerente ou expedição de computador com base no Scheme. Portanto, você evita o problema comum de não conseguir registrar manipuladores adicionais para protocolos conhecidos. Você também pode trabalhar facilmente com várias versões de uma associação lado a lado, dando a cada versão um nome diferente.
A Binding classe implementa a IDefaultCommunicationTimeouts interface para atenuar ataques de DOS (Negação de Serviço) que dependem da associação de recursos para intervalos estendidos de tempo. A implementação especifica os valores de tempos limite de comunicação para abrir e fechar conexões e para as operações de leitura e gravação associadas ao recebimento e envio de mensagens. As propriedades usadas para obter e definir esses tempos limite e suas operações de valores padrão são resumidas na tabela a seguir.
Propriedade Timeout | Valor padrão |
---|---|
OpenTimeout | 1 minuto |
CloseTimeout | 1 minuto |
SendTimeout | 1 minuto |
ReceiveTimeout | 10 minutos |
Ao criar uma associação herdando de Binding, você deve substituir CreateBindingElements.
Além disso, você pode definir seus próprios elementos de associação e inseri-los entre qualquer uma das camadas definidas na tabela anterior. Para obter mais informações, consulte a classe CustomBinding.
Construtores
Binding() |
Inicializa uma nova instância da classe Binding com um namespace e nome padrões. |
Binding(String, String) |
Inicializa uma nova instância da classe Binding de uma associação especificada do serviço. |
Propriedades
CloseTimeout |
Obtém ou define o intervalo concedido para que uma conexão seja fechada antes que o transporte gere uma exceção. |
MessageVersion |
Obtém a versão de mensagem usada por clientes e serviços configurados com a associação. |
Name |
Obtém ou define o nome da associação. |
Namespace |
Obtém ou define o namespace de XML da associação. |
OpenTimeout |
Obtém ou define o intervalo concedido para que uma conexão seja aberta antes que o transporte gere uma exceçã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. |
Scheme |
Quando implementado em uma classe derivada, define o esquema de URI que especifica o transporte usado pelas fábricas de canal e de ouvinte criadas pelas associações. |
SendTimeout |
Obtém ou define o intervalo concedido para uma operação ser concluída antes de o transporte gerar uma exceção. |
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. |
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. |
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. |
BuildChannelListener<TChannel>(Object[]) |
Cria o ouvinte de canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
CreateBindingElements() |
Quando substituído em uma classe derivada, cria uma coleção que contém os elementos de associação que fazem parte 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. |
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. |
ShouldSerializeNamespace() |
Retorna se o namespace da associação deve ser serializado. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |