Pergunta

Eu estou usando Microsoft.XMLHTTP de uma página asp clássico para informações post para outro site ...

Eu gostaria de ser capaz de inspecionar o que está acontecendo com violinista, e para isso eu tenho que encontrar uma maneira de Microsoft.XMLHTTP configure para usar um proxy ...

é possível? onde faz Microsoft.XMLHTTP obtém sua configuração a partir de?

muito obrigado

Foi útil?

Solução

Eu acho que algumas coisas aqui precisam esclarecer.

Os ProgID pontos "Microsoft.XMLHTTP" na mesma classe como "MSXML2.XMLHTTP". Essa classe usa a WinINET pilha do protocolo HTTP que usa o Internet Explorer e, portanto, vai usar qualquer configuração de proxy é encontrado nas configurações de Internet no PC.

Assim para "Microsoft.XMLHTTP" o comando proxycfg não é útil.

Uma alternativa para XMLHTTP é "MSXML2.ServerXMLHTTP". Essa classe usa a pilha WinHTTP protocolo HTTP que é projetado para ser leve e amigável servidor. É seguro usar várias instâncias em vários segmentos no mesmo processo onde WinINET não é. Por esta razão, é ServerXMLHTTP deve ser usado no lado do servidor de código ASP.

WinHTTP não usa as configurações da Internet que WinINET usos, portanto, para configurar o proxy que ServerXMLHTTP usará você precisa usar o comando proxycfg. Um comando realmente útil é: -

proxycfg -u

que copia as configurações de proxy WinINET atuais para aqueles usados ??por WinHTTP, se você usar ferramentas como o violinista isso é útil para começar a monitorar o tráfego passando por WinHTTP após violinista é iniciado. (Nota você acompanhar com proxycfg -d para remover as configurações de proxy).

ServerXMLHTTP também tem um método setProxy que permite que as configurações de proxy reais para ser configurado de forma dinâmica ser código.

Outras dicas

Para Windows Vista e acima, o proxycfg.exe pode ter sido reprovado e substituído por netsh winhttp . Como mencionado neste artigo: http: // MSDN. microsoft.com/en-us/library/windows/desktop/aa384069%28v=vs.85%29.aspx

Como a minha situação no Win7, eu preciso fazer a seguir para set proxy:

netsh winhttp set proxy myProxyServer:80

oops

Eu acho que eu achei

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

você tem que issu algo como


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

...

edit:

Eu também descobri que usando ServerXMLHTTP em vez de XMLHttp, você tem um método SetProxy ...

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

e aqui está um exemplo de uso

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

...

Eu olhei para esta discussão para resolver o meu problema - que ajudou mas há mudanças nos sistemas mais recentes agora
. Minha situação estava fazendo um web MSXML2.ServerXMLHTTP chamada de um servidor corporativo passando por Proxy Server com credenciais digeridos Active Directory.

Há dois problemas aqui por mim, mas eu finalmente consegui fazê-lo funcionar com apenas o MSXML2.ServerXMLHTTP padrão sem ter que especificar as versões .3.0 ou .6.0.

servidores Windows mais recentes não têm proxycfg, você precisa usar netsh como mencionado anteriormente.

Existem algumas coisas que você precisa alinhados.
Em meu cenário Eu estava correndo o site e pool de aplicativos sob as credenciais da conta do AD do usuário (Isto foi necessário para acesso de banco de dados) Eu sugeriria que pelo menos o pool de aplicativos seria necessário para executar como a conta AD

Este foi em um 64 Bit Windows System

  1. Obviamente, a AD usuário precisa ter acesso à Internet
  2. Você precisará especificar as configurações de proxy winhttp usando netsh
  3. Se você tem 'Ativar aplicativos de 32 bits' Habilitado você também precisará definir o proxy winhttp para 32 bits. Ele vai olhar para essa definição.

Assim como?

Verifique winhttp configurações de proxy Na linha de comando

%WINDIR%\System32\NETSH WINHTTP SHOW PROXY

Verifique winhttp configurações de proxy Na linha de comando

%WINDIR%\SysWOW64\NETSH WINHTTP SHOW PROXY

Se você precisa configurá-los A partir da linha de comando [change 8080 à sua porta]

%WINDIR%\System32\NETSH WINHTTP SET PROXY PROXYSERVERURL:8080
%WINDIR%\SysWOW64\NETSH WINHTTP SET PROXY PROXYSERVERURL:8080
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top