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

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 819267 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

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

Właściwości

Numer ID artykułu: 819267 - Ostatnia weryfikacja: 16 maja 2007 - Weryfikacja: 1.2
Informacje zawarte w tym artykule dotyczą:
  • Microsoft .NET Framework 1.1
Słowa kluczowe: 
kberrmsg kbinfo kbhttp kbwebserver kbwebclasses kbhtml KB819267

Przekaż opinię

 

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