Al momento sei offline in attesa che la connessione Internet venga ristabilita

INFO: HTTP GET e HTTP POST sono disabilitati per impostazione predefinita

Sommario
In questo articolo vengono descritte le modifiche apportate a .NET Framework 1.1 che incidono sui metodi HTTP GET e HTTP POST in un server Web. In questo articolo vengono inoltre descritte le soluzioni alternative per questa nuova funzionalità.
Informazioni
I servizi Web connessi a .NET supportano i protocolli HTTP GET, HTTP POST e SOAP. Per impostazione predefinita, in .NET Framework 1.0 tutti e tre i protocolli sono abilitati. Per impostazione predefinita, in .NET Framework 1.1 i protocolli HTTP GET e HTTP POST sono entrambi disabilitati per motivi di sicurezza.

Le applicazioni che utilizzano HTTP GET o HTTP POST per richiamare un servizio Web non funzionano se tale servizio è aggiornato a .NET Framework 1.1. Tali applicazioni ricevono il messaggio di errore
System.Net.WebException
indicante che il formato della richiesta non è riconosciuto.

Si noti che il form di test basato su HTML utilizza HTTP POST e che pertanto non funziona in .NET Framework 1.1. Ciò vale sempre tranne che sull'host locale, come indicato più avanti.

.NET Framework 1.1 definisce un nuovo protocollo detto HttpPostLocalhost. Per impostazione predefinita, questo nuovo protocollo è abilitato e consente di richiamare i servizi Web che utilizzano le richieste HTTP POST dalle applicazioni sullo stesso computer. Ciò vale purché l'URL POST utilizzi http://localhost e non http://hostname. In questo modo gli sviluppatori di servizi Web possono utilizzare il form di test basato su HTML per richiamare il servizio Web dallo stesso computer in cui il servizio Web risiede.

Quando si cerca di accedere al servizio Web da un computer remoto, non viene visualizzato il pulsante Richiama e viene visualizzato un messaggio di errore analogo al seguente:

Il form di test è disponibile per le richieste solo dal computer locale

Soluzione alternativa

È possibile abilitare HTTP GET e HTTP POST modificando il file Web.config della radice virtuale in cui risiede il servizio Web. La configurazione riportata di seguito consente di abilitare HTTP GET e HTTP POST:
<configuration>    <system.web>    <webServices>        <protocols>            <add name="HttpGet"/>            <add name="HttpPost"/>        </protocols>    </webServices>    </system.web></configuration>
In alternativa è possibile abilitare questi protocolli per tutti i servizi Web sul computer modificando la sezione <protocols> di Machine.config. L'esempio seguente consente di abilitare HTTP GET, HTTP POST nonché SOAP e HTTP POST dall'host locale:
<protocols>	<add name="HttpSoap"/>	<add name="HttpPost"/>	<add name="HttpGet"/> 	<add name="HttpPostLocalhost"/>      <!-- Documentation enables the documentation/test pages -->	<add name="Documentation"/></protocols>
Riferimenti
Per ulteriori informazioni sulla configurazione dei servizi Web, vedere l'elemento <protocols> nella documentazione di .NET Framework 1.1 (informazioni in lingua inglese): http://msdn2.microsoft.com/en-us/library/ccbk8w5h(vs.71).aspx
HTTP POST GET Unrecognized
Proprietà

ID articolo: 819267 - Ultima revisione: 05/16/2007 05:37:00 - Revisione: 1.2

  • Microsoft .NET Framework 1.1
  • kberrmsg kbinfo kbhttp kbwebserver kbwebclasses kbhtml KB819267
Feedback