¿Cómo mostrar el tráfico de localhost en Fiddler mientras se depura una aplicación ASP.NET?


Respuestas:


87

intente usar esto:

http://ipv4.fiddler/folder

en vez de

http://localhost/folder

esto también funciona con puertos

http://ipv4.fiddler:12345/folder

Aquí hay un enlace a la documentación de Fiddler

http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/MonitorLocalTraffic


Nota: Esto es necesario solo para IE, y solo IE8 y versiones anteriores. <= ¡IE8 era tan inteligente que SABÍA que no querría utilizar un servidor proxy para el tráfico local! Entonces ve 'localhost' en su url y no se molesta con la configuración tonta del servidor proxy, que es como Fiddler se conecta.
Scott Stafford

52

Para que Fiddler funcione en localhost con IIS Express, debe usar esta forma de URL

http://localhost.fiddler:50262/

Esto coloca el valor de encabezado de host correcto (localhost) que cumple con IIS Express.


Esto funcionó muy bien para mí al intentar usar la importación de fuentes de Excel OData desde mi sitio de prueba que se ejecuta en Visual Studio / IIS Express.
Keith Hill

Me estaba golpeando la cabeza contra la pared, ¡esto también funcionó muy bien para mí! ¡Gracias!
2014

Esto funciona para la api web de IIS express Asp.net alojada localmente. salud.
Raghu

19

Inicie Fiddler. Vaya a Herramientas -> Opciones de Fiddler. Elija la pestaña Conexiones. Marque la opción 'USe PAC Script'.

Ahora también podrá controlar el tráfico local


1
Tuve problemas para agregar el. con SSl y el proxy de nuestra empresa, pero cambiar esta configuración funcionó. ¡Gracias!
AlignedDev

12

Para un proyecto de sitio web ASP.NET:

1) Haga clic con el botón derecho en el proyecto y seleccione Páginas de propiedades.
2) Seleccione Opciones de inicio.
3) En la sección Servidor, haga clic en "Usar servidor personalizado" y edite la URL base reemplazando localhost con el nombre de su computadora.


7

Probablemente la forma más fácil de monitorear el tráfico a localhost es reemplazar "localhost" por "localhost". en la barra de URL del navegador. P.ej

http://localhost./MyApp/default.aspx


3

Puede usar el nombre de host de la PC en lugar de 127.0.0.1 o localhost


3

Marcar "Usar secuencia de comandos PAC" en Opciones de Fiddler -> Conexiones funcionó para mí cuando usé IIS Express dentro de una intranet corporativa.


Bueno, no estoy seguro de lo que sucedió, pero recientemente actualicé Fiddler a v4.6.2.2 y la comprobación de "Usa PAC Script" en realidad detuvo el funcionamiento de Fiddler. Tuve que desmarcar la opción para que las cosas funcionen nuevamente ...
David Norris-Hill

3

Usando Fiddler v4:

  1. Compruebe la configuración de su proxy de IE

IE-> Herramientas-> Opciones de Internet-> Conexiones-> Configuración de Lan

Configuración de IE Lan

  1. Verifique su configuración en Fiddler:

Fiddler -> Opciones-> Conexiones y Https

Verifique el puerto de Fiddler, el predeterminado es 8888 Puerto de Fiddler

  1. En el menú de Fiddler:

Archivo -> Capturar tráfico está marcado

La siguiente solución funcionó para mí, al usar un

  • HttpClient o
  • WebClient desde dentro de una aplicación ASP.NET.

Web.config

<system.net>
    <defaultProxy
                enabled = "true"
                useDefaultCredentials = "true">
      <proxy autoDetect="False" bypassonlocal="False" proxyaddress="http://127.0.0.1:8888" usesystemdefault="False" />
    </defaultProxy>

Codigo :

var resourceServerUri = new Uri("http://localhost.fiddler:YourAppServicePort");
var body = c.GetStringAsync(new Uri(resourceServerUri)).Result;



Verifique si su solicitud realmente llega a Fiddler personalizando el script de Reglas de Fiddler

Fiddler-> Reglas-> Personalizar reglas

y enganche al evento OnBeforeRequest :

static function OnBeforeRequest(oSession: Session) {

if (oSession.hostname.Contains("localhost:YourPortNumber")
{
 System.Windows.Forms.MessageBox.Show(oSession.hostname);  
} 

O explícitamente configurando un proxy web

WebClient wc = new WebClient();

WebProxy proxy = new WebProxy();
// try one of these URIs
proxy.Address = new Uri("http://127.0.0.1:8888");
proxy.Address = new Uri("http://hostname:8888");
proxy.Address = new Uri("http://localhost.fiddler");
proxy.Address = new Uri("http://ipv4.fiddler");
// https://en.wikipedia.org/wiki/IPv6
proxy.Address = new Uri("http://ipv6.fiddler");

proxy.BypassProxyOnLocal = false; wc.Proxy = proxy;
var b = wc.DownloadString(new Uri(YourResourceServerBaseAddress));

2

Asegúrese de que en sus conexiones de Fiddler ese host local no esté en el cuadro "IE debería omitir a Fiddler para las URL que comienzan con:".


1
El "IE debería omitir a Fiddler para las URL que comienzan con" está vacío.
Michael Kniskern

2

Debes desmarcar la casilla de verificación:

Omitir servidor proxy para direcciones locales

Ubicado en la configuración de proxy de Internet Explorer.



2

Una de las posibles soluciones es eliminar la configuración de proxy en IE de la siguiente manera.

       IE->Tools->Internet Options->Connections->Lan Settings->

deshabilitar siguiente

  • Detectar automáticamente la configuración
  • Usar secuencia de comandos de configuración automática

1

Si intenta capturar tráfico HTTPS puro en una máquina local desde BizTalk usando Fiddler, intente usar la configuración de proxy del adaptador de WCF. Usé una dirección de:http://localhost:8888/


Mi hijo und dessen Frau tuvo que comprar un gato puro porque llegaron a casa con otro gato letzte nacht.
B. Clay Shannon
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.