как указать конфигурацию прокси-сервера с помощью Microsoft.Для xmlhttp?

Я использую Microsoft.XMLHTTP с классической страницы asp для публикации информации на другой сайт...

Я хотел бы иметь возможность проверить, что происходит с fiddler, и для этого мне нужно найти способ настроить Microsoft.XMLHTTP для использования прокси...

это возможно? причем тут Майкрософт.XMLHTTP получает свою конфигурацию от?

спасибо большое

4 ответов


Я думаю, что некоторые вещи нужно убирать.

ProgID " Microsoft.XMLHTTP "указывает на тот же класс, что и" MSXML2.Для xmlhttp". Этот класс использует стек протокола HTTP WinINET, используемый Internet Explorer, и поэтому будет использовать любую конфигурацию прокси-сервера, найденную в настройках интернета на ПК.

следовательно, для "Microsoft.Xmlhttp " команда proxycfg не полезна.

альтернативой XMLHTTP является " MSXML2.Для serverxmlhttp". Этот класс использует Стек протокола HTTP WinHTTP, который разработан, чтобы быть легким и дружественным к серверу. Безопасно использовать несколько экземпляров в нескольких потоках в одном и том же процессе, где WinINET нет. По этой причине ServerXMLHTTP должен использоваться в коде ASP на стороне сервера.

WinHTTP не использует настройки Интернета, которые использует WinINET, поэтому для настройки прокси-сервера, который будет использовать ServerXMLHTTP, вам нужно использовать команду proxycfg. Действительно полезная команда:-

proxycfg -u

что копирует текущие настройки прокси WinINET в те, которые используются WinHTTP, если вы используете такие инструменты, как fiddler это полезно, чтобы начать мониторинг трафика, проходящего через WinHTTP после запуска fiddler. (Обратите внимание, что вы следите за proxycfg -d удалить настройки прокси-сервера).

ServerXMLHTTP также имеет setProxy метод, который позволяет динамически настраивать фактические параметры прокси-сервера.


для windows Vista и выше, proxycfg.exe, возможно, устарел и заменен netsh winhttp. Как упоминалось в этой статье: http://msdn.microsoft.com/en-us/library/windows/desktop/aa384069%28v=vs.85%29.aspx

как моя ситуация в win7, мне нужно сделать следующее, Чтобы установить прокси:

netsh winhttp set proxy myProxyServer:80

упс

Кажется, я нашел его

http://support.microsoft.com/kb/289481/EN-US/

вы должны issu что-то вроде


proxycfg -d -p myProxyServer:80 "<local>"

...

изменить:

Я также обнаружил, что с помощью ServerXMLHTTP вместо XMLHttp у вас есть метод setProxy...

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

а вот использование пример

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

...


Я посмотрел на эту тему, чтобы решить мою проблему - это помогло, но есть изменения в новую систему.
Моя ситуация была делать web msxml2 описывается.Вызов ServerXMLHTTP с корпоративного сервера, проходящего через прокси-сервер с переваренными учетными данными Active Directory.

здесь было несколько проблем для меня, но мне в конечном итоге удалось заставить его работать только со стандартным MSXML2.ServerXMLHTTP без необходимости указывать .3.0 или .6.0 версии.

новые серверы windows не имеют proxycfg, вам нужно использовать netsh, как упоминалось ранее.

есть несколько вещей, которые вам нужно, выстроившись.
В моем сценарии я запускал веб-сайт и пул приложений под учетными данными учетной записи пользователя AD (это было необходимо для доступа к базе данных) Я бы предположил, что по крайней мере пул приложений должен работать как рекламная учетная запись

Это было на 64 бит Windows Система

  1. очевидно, что пользователь объявления должен будет иметь доступ в интернет
  2. вам нужно будет указать настройки прокси-сервера winhttp с помощью netsh
  3. если у вас есть "включить 32-разрядные приложения" включен, вам также нужно будет установить WinHTTP прокси для 32-разрядного. Он будет искать эту настройку.

так как?

проверьте настройки прокси-сервера winhttp В командной строке

%WINDIR%\System32\NETSH WINHTTP SHOW PROXY

проверьте настройки прокси-сервера winhttp На Командная строка

%WINDIR%\SysWOW64\NETSH WINHTTP SHOW PROXY

Если вам нужно установить их Из командной строки [изменить 8080 на порт]

%WINDIR%\System32\NETSH WINHTTP SET PROXY PROXYSERVERURL:8080
%WINDIR%\SysWOW64\NETSH WINHTTP SET PROXY PROXYSERVERURL:8080