No WCF, existem vários tipos diferentes de ligações baseadas em HTTP:
Quais são as diferenças entre esses 3?
Em particular, quais são as diferenças em termos de recursos / desempenho e compatibilidade?
No WCF, existem vários tipos diferentes de ligações baseadas em HTTP:
Quais são as diferenças entre esses 3?
Em particular, quais são as diferenças em termos de recursos / desempenho e compatibilidade?
Respostas:
Você está comparando maçãs com laranjas aqui:
webHttpBinding é a ligação no estilo REST, na qual você basicamente acessa uma URL e recebe um caminhão cheio de XML ou JSON do serviço da web
basicHttpBinding e wsHttpBinding são duas ligações baseadas em SOAP que são bem diferentes do REST. O SOAP tem a vantagem de ter o WSDL e o XSD para descrever o serviço, seus métodos e os dados transmitidos em grande detalhe (o REST ainda não tem nada parecido). Por outro lado, você não pode simplesmente navegar para um ponto de extremidade wsHttpBinding com o navegador e olhar para XML - é necessário usar um cliente SOAP, por exemplo, o WcfTestClient ou seu próprio aplicativo.
Portanto, sua primeira decisão deve ser: REST x SOAP (ou você pode expor os dois tipos de terminais do seu serviço - isso também é possível).
Em seguida, entre basicHttpBinding e wsHttpBinding, existem diferenças da seguinte maneira:
basicHttpBinding é a ligação muito básica - SOAP 1.1, não muito em termos de segurança, nem muito mais em termos de recursos - mas compatível com praticamente qualquer cliente SOAP existente -> ótimo para interoperabilidade, fraco em recursos e segurança
wsHttpBinding é a ligação completa, que suporta vários recursos e padrões do WS- * - possui muito mais recursos de segurança, você pode usar conexões de sessão, usar mensagens confiáveis, usar controle de transações - apenas muito mais coisas , mas o wsHttpBinding também é muito mais pesado "e acrescenta muita sobrecarga às suas mensagens enquanto elas viajam pela rede
Para uma comparação detalhada (incluindo exemplos de tabela e código) entre os dois, consulte este artigo de projeto de código: Diferenças entre BasicHttpBinding e WsHttpBinding