2009-06-25 17 views
9

Używam Microsoft.XMLHTTP z klasycznej strony asp, aby opublikować informacje w innej witrynie ...Jak określić konfigurację proxy za pomocą Microsoft.XMLHTTP?

Chciałbym móc sprawdzić, co dzieje się z skrzypkiem, a do tego muszę znaleźć sposób konfigurowania Microsoft.XMLHTTP do korzystania z proxy ...

czy to możliwe? skąd Microsoft.XMLHTTP otrzymuje swoją konfigurację?

thanks a lot

+0

Czy to oznacza, że ​​nie możesz zobaczyć żądania/odpowiedzi w skrzypku podczas publikowania przy użyciu XMLHTTP? – shahkalpesh

+0

tak, to prawda ... Mam na myśli, widzę prośbę i odpowiedź, która dostaje się do mojej strony asp, ale nie widzę tej, którą robię za pomocą XMLHTTP ... – opensas

Odpowiedz

14

Myślę, że niektóre rzeczy tutaj nie mają d oczyszczanie.

ProgID "Microsoft.XMLHTTP" wskazuje na tę samą klasę, co "MSXML2.XMLHTTP". Ta klasa używa stosu protokołu HTTP WinINET, z którego korzysta Internet Explorer, i dlatego użyje dowolnej konfiguracji serwera proxy znajdującej się w Ustawieniach Internetowych na PC.

Dlatego dla "Microsoft.XMLHTTP" komenda proxycfg nie jest przydatna.

Alternatywą dla XMLHTTP jest "MSXML2.ServerXMLHTTP". Ta klasa używa stosu protokołu HTTP protokołu WinHTTP, który został zaprojektowany tak, aby był lekki i przyjazny dla serwera. Bezpieczne jest używanie wielu wystąpień w wielu wątkach w tym samym procesie, w którym nie działa WinINET. Z tego powodu serwer ServerXMLHTTP powinien być używany w kodzie ASP po stronie serwera.

WinHTTP nie korzysta z ustawień internetowych, których używa WinINET, a zatem do skonfigurowania proxy, z którego będzie korzystać serwer XMLHTTP, należy użyć polecenia proxycfg. Naprawdę przydatne polecenia: -

proxycfg -u 

których kopie aktualnych ustawieniach WinINet proxy do tych używanych przez WinHTTP, jeśli używasz narzędzia, takie jak Skrzypek Funkcja ta jest przydatna, aby rozpocząć monitorowanie ruchu przechodzi WinHTTP po Skrzypek jest uruchomiony. (Zwróć uwagę, że w celu usunięcia ustawień proxy wykonaj proxycfg -d).

ServerXMLHTTP ma również metodę setProxy, która pozwala na dynamiczne konfigurowanie rzeczywistych ustawień proxy.

+0

dziękuję bardzo, bardzo przydatna odpowiedź! (Widzę, skąd twoja reputacja 16k pochodzi ...) Próbowałem używać ServerXMLHTTP z proxycfg -u i działało jak urok ... wielkie dzięki (ale wciąż zastanawiam się, dlaczego z XMLHTTP nie działa .. .) – opensas

0

Spojrzałem na tego wątku, aby rozwiązać mój problem - to pomogło, ale są zmiany nowsze systemy teraz.
Moja sytuacja polegała na nawiązywaniu połączenia internetowego MSXML2.ServerXMLHTTP z serwera firmowego przechodzącego przez serwer proxy z uwierzytelnionymi poświadczeniami usługi Active Directory.

Dla mnie było kilka problemów, ale ostatecznie udało mi się przekonać go do pracy z Standardowym MSXML2.ServerXMLHTTP bez konieczności podawania wersji .3.0 lub .6.0.

Nowsze serwery Windows nie mają proxycfg, należy użyć narzędzia netsh, jak wspomniano wcześniej.

Jest kilka rzeczy, które wymagają wyrównania.
W moim scenariuszu biegałam z Serwisu i puli aplikacji w ramach poświadczeń konta AD użytkownika (ten był wymagany do dostępu do bazy danych) Sugerowałbym, że przynajmniej Application Pool musiałaby działać jako konto AD

To było na 64 bitowym systemie Windows

  1. Oczywiście AD użytkownik musi mieć dostęp do internetu
  2. Musisz określić ustawienia serwera proxy WinHTTP użyciu netsh
  3. Jeśli masz włączoną opcję "Włącz aplikacje 32-bitowe", musisz także ustawić serwer proxy winhttp na 32-bitowy. Będzie szukać tego ustawienia.

A jak?

sprawdzić winhttp ustawienia proxy w wierszu poleceń

 
%WINDIR%\System32\NETSH WINHTTP SHOW PROXY 

sprawdzić winhttp ustawień proxy w wierszu poleceń

 
%WINDIR%\SysWOW64\NETSH WINHTTP SHOW PROXY 

Jeśli trzeba ustawić je Z wiersza poleceń [Zmiana 8080 do twojego portu]

 
%WINDIR%\System32\NETSH WINHTTP SET PROXY PROXYSERVERURL:8080 
 
%WINDIR%\SysWOW64\NETSH WINHTTP SET PROXY PROXYSERVERURL:8080 
Powiązane problemy