Por padrão, todas as requisições HTTP que são relizadas pelas classes que estão contidas no namespace System.Net, adicionam um header chamado “Expect: 100-continue”. A finalidade deste header, criado a partir da versão 1.1 do HTTP, quando é implementado corretamente pelos servidores Web, servem para que o servidor, baseando-se apenas nos headers da requisição, determine se a mensagem será ou não aceitada por ele, sem a necessidade de enviar toda a mensagem para depois rejeitá-la.
Quando você tenta consumir um serviço WCF exposto através do protocolo HTTP, eventualmente poderá receber a seguinte mensagem de erro: The remote server returned an unexpected response: (417) Expectation failed. Provavelmente isso pode ser pela má implementação deste recurso do protocolo, que evita conseguirmos consumir o serviço. Para resolver este problema precisamos desativar o envio deste header, que acaba provocando este comportamento. Para isso, podemos recorrer à propriedade estática Expect100Continue da classe ServicePointManager, que recebe um valor boleano (que por padrão é True), indicando se este recurso está ou não habilitado. No nosso caso, devemos definí-la como False antes da chamada da operação do serviço:
System.Net.ServicePointManager.Expect100Continue = false;
Ou, para ficar mais flexível, utilizando o arquivo de configuração:
<system.net>
<settings>
<servicePointManager expect100Continue=”false”/>
</settings>
</system.net>
Obrigado Israel, este post vai ajudar e muito, assim como os outros ajudaram. Ainda estou começando a entender a plataforma .Net, e gostando muito, e novamente parabéns pelo bom trabalho.
Israel
Estive enfrentando problemas de conexão quando consumia serviços do WebService da prefeitura de Belo Horizonte.
Estava enviando duas requisições em um curtíssimo espaço de tempo, e a segunda requisição sempre falhava: "The request was aborted: Could not create SSL/TLS secure channel".
Quando setei Expect100Continue para false, resolveu o problema.
Muito bom artigo, fortaleceu a solução que havia encontrado
Obrigado