14

tylko kiedy wreszcie zrozumiał różnicę między Msxml2.XMLHTTP i Msxml2.ServerXMLHTTPróżnice między Msxml2.ServerXMLHTTP i WinHttp.WinHttpRequest?

http://support.microsoft.com/kb/290761

XMLHTTP jest przeznaczony dla aplikacji klienckich i opiera się na Urlmon, który jest zbudowany na Microsoft Win32 Internet (WinInet). ServerXMLHTTP jest przeznaczony dla aplikacji serwerowych i opiera się na nowym stosie klienta HTTP, WinHTTP. ServerXMLHTTP oferuje niezawodność i bezpieczeństwo oraz jest bezpieczny dla serwera. Aby uzyskać więcej informacji, zobacz dokumentację pakietu MSXML Software Development Kit (SDK).

nagle znajdę WinHttp.WinHttpRequest ...

http://msdn.microsoft.com/en-us/library/aa382925(VS.85).aspx

Usługi Microsoft Windows HTTP (usługę WinHTTP) zapewnia programistom, interfejs wysokiego poziomu serwera obsługiwanych do HTTP/1.1 Protokół internetowy. WinHTTP został zaprojektowany do używania głównie w scenariuszach serwerowych przez aplikacje serwerowe, które komunikują się z serwerami HTTP.

tak, jak to jest różne od Msxml2.ServerXMLHTTP

(dobrze, pytanie jest niejawna których jeden należy używać ...)

+0

Już tam jest w cudzysłowie, jeśli używasz ** strony serwera ** użyj 'WinHttpRequest' jeśli ** po stronie klienta ** użyj' Msxml2.ServerXMLHTTP'. – Lankymart

+1

_if użycie po stronie klienta Msxml2.ServerXMLHTTP_? W cytacie: _ServerXMLHTTP jest przeznaczony dla aplikacji serwerowych ... – cychoi

Odpowiedz

3

WinHttpRequest jest stary i nie wydaje się, aby jak praca z .Net już. Przynajmniej moja łamała się po ostatniej aktualizacji i nie mogę tego zrobić.

+0

Co za ładunek śmieci jest ta odpowiedź, jeśli cokolwiek '' 'WinHttpRequest' jest bardziej stabilne z dwóch i zaprojektowane specjalnie dla środowisk serwerowych. Co .Net z tym nie wiem, ponieważ ma własne klasy do tego celu. – Lankymart

11

Msxml2.XMLHTTP i Msxml2.ServerXMLHTTP to dwa komponenty udostępniające podobny interfejs do pobierania plików XML poprzez protokół HTTP. Pierwszy jest zbudowany na URLMon, który opiera się na WinINet. Później jest zbudowany na WinHTTP, który jest przyjaznym dla serwera zamiennikiem WinINet. Mówiąc prościej - ServerXMLHTTP = XML + WinHTTP.

-6

Używaliśmy obu tych komponentów w klasycznych aplikacjach internetowych ASP. Nazywane były DUŻO razy na minutę, od strony serwera do serwera po stronie serwera wzywającej do innej strony asp lub aspx po stronie serwera).

Server.CreateObject("WinHttp.WinHttpRequest.5.1") 
Server.CreateObject("MSXML2.ServerXMLHTTP.6.0") 

Nasze doświadczenie jest takie, że WinHttpRequest jest stabilny, a drugi nie. Musieliśmy usunąć cały nasz createobject do serverxmlhttp i zastąpić go przez winhttprequest, ponieważ po pewnym czasie zajmowało to dużo pamięci, zamarzało, lub pula aplikacji iis nie reagowała lub stała się bardzo wolna.

Nie znam szczegółowej specyfikacji każdego komponentu, ale zapewniam, że z naszego doświadczenia wynika, że ​​"MSXML2.ServerXMLHTTP.6.0" to ten, którego należy używać.

+12

Według mnie twoja odpowiedź jest myląca. W drugim akapicie mówisz "WinHttpRequest jest stabilny, a drugi nie". W trzecim akapicie mówisz "z naszego doświadczenia", z którego należy korzystać "MSXML2.ServerXMLHTTP.6.0". " Te dwa akapity są ze sobą sprzeczne. – slolife

1

Podobnie niedawno aplikacja znalazła mnie z prośbą podobne pytania, jednak po wykonaniu jakieś szczątkowe badania mam uproszczony sposób następujący:

WinHTTP :: interfejs wysokiego poziomu do protokołu HTTP/1.1 Internet

ServerXMLHttp :: ServerXMLHTTP jest zalecany do aplikacji serwerowych, a XMLHTTP jest zalecany do aplikacji klienckich

Zależy od tego, co robisz i jakiej kontroli potrzebujesz.

Jawnie odrzucane elementy ServerXMLHTTP często powodują uciążliwość dla programistów, ponieważ wymaga trochę więcej "pracy" do efektywnego wdrożenia. Pomocna dłoń z jawnie dozwolonymi obiektami WinHTTP i XMLHTTP nie istnieje z ServerXMLHTTP.

Jeśli Twoje rozwiązanie wymaga elementów zwiększających skalowanie w przedsiębiorstwie, wykraczających poza skalowanie, to prawdopodobnie wybierz odpowiednio.

Powiązane problemy