INFO: HTTP GET y HTTP POST están deshabilitados de manera predeterminada

Seleccione idioma Seleccione idioma
Id. de artículo: 819267 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se describen los cambios realizados en .NET Framework 1.1 que afectan a los métodos HTTP GET y HTTP POST en un servidor Web. En este artículo también se describen soluciones alternativas para esta nueva funcionalidad.

Más información

Los servicios Web conectados de .NET admiten los protocolos HTTP GET, HTTP POST y SOAP. De forma predeterminada, en .NET Framework 1.0 los tres protocolos están habilitados. De forma predeterminada, en .NET Framework 1.1 tanto HTTP GET como HTTP POST están deshabilitados. Esto se hace por razones de seguridad.

Las aplicaciones que utilizan HTTP GET o HTTP POST para invocar un servicio Web producen un error cuando el servicio Web se actualiza a .NET Framework 1.1. Estas aplicaciones reciben un mensaje de error
System.Net.WebException
que indica que no se reconoce el formato de la solicitud.

Tenga en cuenta que el formulario de prueba basado en HTML utiliza HTTP POST y, por tanto, no funciona en .NET Framework 1.1. Esto es cierto excepto en localhost, como se indica a continuación.

.NET Framework 1.1 define un nuevo protocolo denominado HttpPostLocalhost. De forma predeterminada, este nuevo protocolo está habilitado. Este protocolo permite invocar servicios Web que utilizan solicitudes HTTP POST desde aplicaciones del mismo equipo. Esto es cierto siempre y cuando la dirección URL de POST utilice http://localhost, no http://hostname. Esto permite a los desarrolladores de servicios Web utilizar el formulario de prueba basado en HTML para invocar el servicio Web desde el mismo equipo donde reside.

Cuando intenta tener acceso al servicio Web desde un equipo remoto no ve el botón Invoke. Y aparece el mensaje de error siguiente:

El formulario de prueba sólo está disponible para solicitudes del equipo local

Solución alternativa

Es posible habilitar HTTP GET y HTTP POST editando el archivo Web.config para la raíz virtual donde reside el servicio Web. La configuración siguiente habilita tanto HTTP GET como HTTP POST:
<configuration>
    <system.web>
    <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    </system.web>
</configuration>
También puede habilitar estos protocolos para todos los servicios Web del equipo editando la sección <protocols> del archivo Machine.config. En el ejemplo siguiente se habilitan HTTP GET, HTTP POST, y también SOAP y HTTP POST desde localhost:
<protocols>
	<add name="HttpSoap"/>
	<add name="HttpPost"/>
	<add name="HttpGet"/> 
	<add name="HttpPostLocalhost"/>
      <!-- Documentation enables the documentation/test pages -->
	<add name="Documentation"/>
</protocols>

Referencias

Para obtener más información acerca de la configuración de los servicios Web, consulte el elemento <protocols> en la documentación de .NET Framework 1.1: http://msdn2.microsoft.com/en-us/library/ccbk8w5h(vs.71).aspx

Propiedades

Id. de artículo: 819267 - Última revisión: miércoles, 16 de mayo de 2007 - Versión: 1.2
La información de este artículo se refiere a:
  • Microsoft .NET Framework 1.1
Palabras clave: 
kberrmsg kbinfo kbhttp kbwebserver kbwebclasses kbhtml KB819267

Enviar comentarios

 

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