INFO: Os métodos HTTP GET e HTTP POST estão desactivados por predefinição

Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Sumário
Este artigo aborda as alterações no .NET Framework 1.1 que afectam o método HTTP GET e o método HTTP POST num servidor da Web. Este artigo também descreve medidas para contornar esta nova funcionalidade.

Este artigo poderá conter hiperligações para conteúdo em inglês (ainda não traduzido).
Mais Informação
Os serviços Web ligados ao .NET suportam os protocolos HTTP GET, HTTP POST e SOAP. Por predefinição, os três protocolos estão activados no .NET Framework 1.0. Por predefinição, os protocolos HTTP GET e HTTP POST estão desactivados no .NET Framework 1.1. Isto acontece por motivos de segurança.

As aplicações que utilizem HTTP GET ou HTTP POST para invocar um serviço Web falham quando o serviço Web é actualizado para o .NET Framework 1.1. Estas aplicações recebem uma mensagem de erro
System.Net.WebException
a indicar que o formato de pedido não é reconhecido.

Note que o formulário de teste baseado em HTML utiliza HTTP POST e, por este motivo, não funciona no .NET Framework 1.1. À excepção do localhost, esta condição verifica-se em todas situações, conforme indicado abaixo.

O .NET Framework 1.1 define um novo protocolo com a denominação HttpPostLocalhost. Este novo protocolo está activado por predefinição. Este protocolo permite invocar serviços Web que utilizem pedidos HTTP POST de aplicações no mesmo computador. Esta condição verifica-se se o URL de POST utilizar http://localhost e não http://hostname. Isto permite aos programadores de serviços Web utilizar o formulário de teste baseados em HTML para invocar o serviço Web a partir do mesmo computador onde este reside.

Quando tenta aceder ao serviço Web a partir de um computador remoto, não consegue ver o botão Invocar e recebe a seguinte mensagem de erro:

O formulário de teste só está disponível para pedidos do computador local

Como contornar

Poderá activar os protocolos HTTP GET e HTTP POST editando o ficheiro Web.config referente à raiz virtual onde o serviço Web reside. A configuração que se segue activa os protocolos HTTP GET e HTTP POST:
<configuration>    <system.web>    <webServices>        <protocols>            <add name="HttpGet"/>            <add name="HttpPost"/>        </protocols>    </webServices>    </system.web></configuration>
Em alternativa, pode activar estes protocolos para todos os serviços Web do computador editando a secção <protocols> do ficheiro Machine.config. O exemplo que se segue activa os protocolos HTTP GET, HTTP POST, bem como SOAP e HTTP POST do localhost:
<protocols>	<add name="HttpSoap"/>	<add name="HttpPost"/>	<add name="HttpGet"/> 	<add name="HttpPostLocalhost"/>      <!-- Documentation enables the documentation/test pages -->	<add name="Documentation"/></protocols>
Referências
Para obter mais informações sobre a configuração de serviços Web, consulte <protocols> Element na documentação do .NET Framework 1.1: http://msdn2.microsoft.com/en-us/library/ccbk8w5h(vs.71).aspx
HTTP POST GET Unrecognized
Propriedades

ID do Artigo: 819267 - Última Revisão: 12/08/2015 02:36:08 - Revisão: 1.2

  • Microsoft .NET Framework 1.1
  • kbnosurvey kbarchive kberrmsg kbinfo kbhttp kbwebserver kbwebclasses kbhtml KB819267
Esta informação foi útil?