Esto se logra fácilmente, ya sea mediante programación, en su código, o declarativamente en web.config o app.config.
Puede crear un proxy mediante programación así:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("[ultimate destination of your request]");
WebProxy myproxy = new WebProxy("[your proxy address]", [your proxy port number]);
myproxy.BypassProxyOnLocal = false;
request.Proxy = myproxy;
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
Básicamente, estás asignando el WebProxy
objeto a la propiedad request
del objeto proxy
. Esto request
luego usará el proxy
que defina.
Para lograr lo mismo declarativamente, puede hacer lo siguiente:
<system.net>
<defaultProxy>
<proxy
proxyaddress="http://[your proxy address and port number]"
bypassonlocal="false"
/>
</defaultProxy>
</system.net>
dentro de su web.config o app.config. Esto establece un proxy predeterminado que utilizarán todas las solicitudes http. Dependiendo exactamente de lo que necesite lograr, es posible que necesite o no algunos de los atributos adicionales del elemento defaultProxy / proxy , así que consulte la documentación para estos.
BypassProxyOnLocal
propiedad en True (si es necesario) inmediatamente después.Si lo está utilizando
WebClient
, tiene una propiedad Proxy que puede utilizar.Como otros han mencionado, hay varias formas de automatizar la detección / uso de la configuración del proxy
Web.Config:
Uso de la clase WebProxy como se describe en este artículo .
También puede configurar la configuración del proxy directamente (configuración o código) y su aplicación los usará.
Web.Config:
Código:
fuente
Prueba este código. Llámelo antes de realizar cualquier solicitud http. El código usará el proxy de la configuración de Internet Explorer; sin embargo, una cosa la uso
proxy.Credentials = ....
porque mi servidor proxy es un servidor de aceleración de Internet autenticado por NTLM. Dale un toque.fuente
WebProxy.GetDefaultProxy
está obsoleto desde Framework 4.5 y este método devuelve nulo. Mejor piensa antes de usarCredentialCache.DefaultNetworkCredentials
. Si ha puesto algo en CredentialCache y su proxy requiere tales credenciales, entonces debería funcionar. De lo contrario, no ayudará.Si desea que la aplicación utilice el proxy predeterminado del sistema, agréguelo a su Application.exe.config (donde application.exe es el nombre de su aplicación):
Se pueden encontrar más detalles en el artículo de MSDN en System.Net
fuente
Esta frase me funciona:
CredentialCache.DefaultNetWorkCredentials
es la configuración de proxy establecida en Internet Explorer.WebRequest.DefaultWebProxy.Credentials
se utiliza para toda la conectividad a Internet en la aplicación.fuente
El código de Foole funcionó perfectamente para mí, pero en .NET 4.0, no olvide verificar si Proxy es NULL, lo que significa que no hay proxy configurado (fuera del entorno corporativo)
Así que aquí está el código que resolvió mi problema con nuestro proxy corporativo
fuente
Este código me ha funcionado:
fuente
La detección automática de proxy es un proceso mediante el cual el sistema identifica un servidor proxy web y lo utiliza para enviar solicitudes en nombre del cliente. Esta función también se conoce como descubrimiento automático de proxy web (WPAD). Cuando la detección automática de proxy está habilitada, el sistema intenta localizar un script de configuración de proxy que es responsable de devolver el conjunto de proxies que se pueden utilizar para la solicitud.
http://msdn.microsoft.com/en-us/library/fze2ytx2.aspx
fuente
fuente
Voy a usar un ejemplo para agregar a las respuestas anteriores.
Me encontré con problemas de proxy al intentar instalar paquetes a través del Instalador de plataforma web
Eso también usa un archivo de configuración que es WebPlatformInstaller.exe.config
Probé las ediciones sugeridas en este foro de IIS que es
y
Ninguno de estos funcionó.
Lo que funcionó para mí fue esto:
El módulo necesitaba estar registrado con Web Platform Installer para poder usarlo.
fuente