INFO: HTTP GET a POST protokolu HTTP jsou ve výchozím nastavení zakázána

Souhrn

Tento článek popisuje změny rozhraní.NET Framework 1.1, které ovlivňují metoda HTTP GET a metodu POST protokolu HTTP na webovém serveru. Tento článek také popisuje řešení pro tuto novou funkci.

Další informace

Na. NET připojen webových služeb podporují HTTP GET, POST protokolu HTTP a SOAP protokoly. Ve výchozím nastavení, rozhraní.NET Framework 1.0 jsou všechny tři protokoly povoleny. Ve výchozím nastavení, rozhraní.NET Framework 1.1 HTTP GET a POST protokolu HTTP jsou oba zakázáno. To je z bezpečnostních důvodů.

Aplikace, které používají protokol HTTP GET nebo POST protokolu HTTP k vyvolání webové služby se nezdaří, pokud webová služba je inovován na rozhraní.NET Framework 1.1. Tyto aplikace se zobrazí
System.Net.WebException
chybová zpráva, která označuje formát požadavku nebyl rozpoznán.

Všimněte si, že formulář založený na jazyce HTML test používá HTTP POST, a proto se formulář založený na jazyce HTML test nefunguje v rozhraní.NET Framework 1.1. To platí pouze na localhost, jak je uvedeno níže.

1.1 rozhraní.NET Framework definuje nový protokol s názvem HttpPostLocalhost. Tento nový protokol je ve výchozím nastavení povolena. Tento protokol umožňuje vyvolání webových služeb, které používají HTTP POST požadavky aplikací ve stejném počítači. To platí, pokud používá POST URL http://localhost, http://hostname. To umožňuje vývojářům služby Webový formulář založený na jazyce HTML test slouží k vyvolání webové služby ze stejného počítače, kde se webová služba nachází.

Při pokusu o přístup k webové službě ze vzdáleného počítače se nezobrazí tlačítko Invoke. A zobrazí následující chybová zpráva:

Testovací formulář je k dispozici pro požadavky z místního počítače.

Jak potíže obejít

HTTP GET a POST protokolu HTTP může povolit úpravou souboru Web.config kořenového adresáře vroot, kde se webová služba nachází. Následující konfigurace umožňuje HTTP GET a POST protokolu HTTP:
<configuration>    <system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>
</configuration>
Alternativně můžete povolit tyto protokoly pro všechny webové služby v počítači úpravou < protokoly > oddíl v souboru Machine.config. Následující příklad povoluje HTTP GET, POST protokolu HTTP a SOAP a HTTP POST z localhost:
<protocols><add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="HttpPostLocalhost"/>
<!-- Documentation enables the documentation/test pages -->
<add name="Documentation"/>
</protocols>

Odkazy

Další informace o konfiguraci webové služby naleznete v tématu < protokoly > Element v dokumentaci k rozhraní.NET Framework 1.1:
http://msdn2.microsoft.com/en-us/library/ccbk8w5h(vs.71).aspx
Vlastnosti

ID článku: 819267 - Poslední kontrola: 16. 1. 2017 - Revize: 1

Váš názor