INFORMACJE: Metody HTTP GET i HTTP POST są domyślnie wyłączone

Ten artykuł został zarchiwizowany. Jest oferowany „taki, jaki jest” i nie będzie już aktualizowany.
Streszczenie
W tym artykule opisano zmiany wprowadzone w programie .NET Framework 1.1, które wpływają na metody HTTP GET i HTTP POST na serwerze sieci Web. Przedstawiono również obejścia tych nowych funkcji.
Więcej informacji
Usługi sieci Web połączone z architekturą .NET obsługują protokoły HTTP GET, HTTP POST i SOAP. W programie .NET Framework 1.0 wszystkie te trzy protokoły są domyślnie włączone. Domyślnie w architekturze .NET Framework 1.1 protokoły HTTP GET i HTTP POST są wyłączone. Zdecydowały o tym względy bezpieczeństwa.

Aplikacje używające protokołu HTTP GET lub HTTP POST w celu wywołania usługi sieci Web nie działają prawidłowo, jeśli ta usługa zostanie uaktualniona do programu .NET Framework 1.1. Aplikacje te odbierają komunikat o błędzie
System.Net.WebException
wskazujący, że format żądania nie jest rozpoznawany.

Należy zauważyć, że w formularzu testowym w formacie HTML jest używany protokół HTTP POST i dlatego formularz ten nie działa w programie .NET Framework 1.1. Nie dotyczy to tylko hosta lokalnego, jak wyjaśniono poniżej.

W programie .NET Framework 1.1 zdefiniowano nowy protokół o nazwie HttpPostLocalhost. Domyślnie protokół ten jest włączony. Pozwala on na wywoływanie usług sieci Web używających żądań HTTP POST z aplikacji na tym samym komputerze. Jest to prawda pod warunkiem, że jest używany adres POST URL http://localhost, a nie http://hostname. Pozwala to deweloperom usług sieci Web na używanie formularza testowego w formacie HTML do wywoływania usługi sieci Web z tego samego komputera, na którym znajduje się usługa sieci Web.

Podczas próby uzyskania dostępu do usługi sieci Web z komputera zdalnego nie jest wyświetlany przycisk Wywołaj. Ponadto pojawia się następujący komunikat o błędzie:

Formularz testowy jest dostępny tylko dla żądań z komputera lokalnego

Obejście

Protokoły HTTP GET i HTTP POST można włączyć, edytując plik Web.config dla wirtualnego katalogu głównego, w którym znajduje się usługa sieci Web. Następująca konfiguracja włącza protokoły HTTP GET i HTTP POST:
<configuration>    <system.web>    <webServices>        <protocols>            <add name="HttpGet"/>            <add name="HttpPost"/>        </protocols>    </webServices>    </system.web></configuration>
Można też włączyć te protokoły dla wszystkich usług sieci Web na komputerze, edytując sekcję <protocols> w pliku Machine.config. W następującym przykładzie zostaną włączone protokoły HTTP GET, HTTP POST i SOAP, a także protokół HTTP POST z hosta lokalnego:
<protocols>	<add name="HttpSoap"/>	<add name="HttpPost"/>	<add name="HttpGet"/>	<add name="HttpPostLocalhost"/>      <!-- Ustawienie Documentation włącza strony dokumentacji/testowe -->	<add name="Documentation"/></protocols>
Materiały referencyjne
Aby uzyskać więcej informacji na temat konfiguracji usług sieci Web, zobacz opis elementu <protocols> w dokumentacji programu .NET Framework 1.1: http://msdn2.microsoft.com/en-us/library/ccbk8w5h(vs.71).aspx
HTTP POST GET Unrecognized
Właściwości

Identyfikator artykułu: 819267 — ostatni przegląd: 12/08/2015 02:36:08 — zmiana: 1.2

Microsoft .NET Framework 1.1

  • kbnosurvey kbarchive kberrmsg kbinfo kbhttp kbwebserver kbwebclasses kbhtml KB819267
Opinia