INFORMAÇÕES: HTTP GET e HTTP POST estão desabilitados por padrão

Traduções deste artigo Traduções deste artigo
ID do artigo: 819267 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo descreve alterações no .NET Framework 1.1 que afetam os métodos HTTP GET e HTTP POST em um servidor Web. Este artigo também descreve soluções alternativas para essa nova funcionalidade.

Mais Informações

Os serviços da Web conectados ao .NET são compatíveis com os protocolos HTTP GET, HTTP POST e SOAP. Por padrão, no .NET Framework 1.0, todos os três protocolos são habilitados. Por padrão, no .NET Framework 1.1, HTTP GET e HTTP POST são desabilitados. Isso acontece por motivos de segurança.

Aplicativos que usam HTTP GET ou HTTP POST para invocar um serviço da Web falham quando o serviço da Web é atualizado para o .NET Framework 1.1. Com esses aplicativos, é exibida uma mensagem de erro
System.Net.WebException
que indica que um formato de solicitação não foi reconhecido.

Observe que o formulário de teste com base em HTML usa HTTP POST e, portanto, o formulário de teste com base em HTML não funciona no .NET Framework 1.1. Isso é sempre verdadeiro, exceto em Localhost, conforme descrito abaixo.

O .NET Framework 1.1 define um novo protocolo chamado HttpPostLocalhost. Por padrão, esse novo protocolo fica habilitado. Esse protocolo permite invocar serviços da Web que usam solicitações de HTTP POST de aplicativos no mesmo computador. Isso é verdadeiro desde que o protocolo POST URL use http://localhost, e não http://hostname. Isso permite que desenvolvedores de serviço da Web usem formulário de teste com base em HTML para invocar o serviço da Web do mesmo computador onde o serviço da Web reside.

Ao tentar acessar o serviço da Web de um computador remoto, o botão Invocar não será exibido. A seguinte mensagem de erro será exibida:

O formulário de teste está somente disponível para solicitações da máquina local

Solução alternativa

O HTTP GET e o HTTP POST podem ser habilitados, editando o arquivo Web.config para o vroot no qual o serviço da Web reside. A configuração a seguir habilita ambos os protocolos HTTP GET e HTTP POST:
<configuration>
    <system.web>
    <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    </system.web>
</configuration>
Como alternativa, é possível habilitar esses protocolos para todos os serviços da Web no computador editando a seção <protocols> no arquivo Machine.config. O exemplo a seguir habilita HTTP GET, HTTP POST e também SOAP e HTTP POST do host local:
<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 da Web, consulte o elemento <protocols> na documentação do .NET Framework 1.1 (em inglês): http://msdn2.microsoft.com/en-us/library/ccbk8w5h(vs.71).aspx

Propriedades

ID do artigo: 819267 - Última revisão: quarta-feira, 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