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

Traduções de Artigos Traduções de Artigos
Artigo: 819267 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

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

Propriedades

Artigo: 819267 - Última revisão: 16 de maio de 2007 - Revisão: 1.2
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 1.1
Palavras-chave: 
kberrmsg kbinfo kbhttp kbwebserver kbwebclasses kbhtml KB819267

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com