2011-01-16 12 views
35

Estoy usando IIS7 Express mientras desarrollo mi aplicación web. Necesito usar el violín para investigar un problema y no puedo entender cómo configurar las cosas para poder obtener la transmisión HTTP. Parece que IIS7 express solo escuchará en localhost lo que significa que no puedo acceder a la transmisión.Uso de Fiddler con IIS7 Express

Respuesta

52

Esto no tiene nada que ver con IIS7 Express y todo tiene que ver con el hecho de que estás usando tráfico de bucle invertido.

Ref: https://www.fiddlerbook.com/fiddler/help/hookup.asp#Q-LocalTraffic

Haga clic en Reglas> Reglas Personalizar.

actualización del archivo de sus reglas, así:

static function OnBeforeRequest(oSession:Fiddler.Session) 
{ 
    if (oSession.HostnameIs("MYAPP")) { oSession.host = "localhost:portnumber"; } 
} 

Entonces, sólo hay que visitar http://myapp en su navegador.

O utilice la dirección http://localhost.fiddler/ y Fiddler utilizará el nombre de host localhost en lugar de convertir a una dirección IP.

+0

Lo leí y no funciona. Supongo que esto se debe a que IIS7 Express solo escucha en localhost – Brettski

+3

Hola Eric y Brettski, Brettski está en lo cierto, en realidad he encontrado el mismo problema con IIS Express. Parece que solo monitorea el nombre de host "localhost", no el tráfico a 127.0.0.1.He tenido un problema similar al que publiqué recientemente en StackOverflow http://stackoverflow.com/questions/4709014/using-custom-domains-with-iis-express –

+1

Aparentemente tiene que estar ejecutándose en Derechos de administrador y usted tiene que entra y modifica los enlaces. No entiendo por qué algo de esto es necesario ya que Cassini hace esto fácilmente. ¿Por qué IIS Express no puede controlar el puerto en 127.0.0.1 sin un encabezado de host "localhost"? –

0

Puede usar el violín como un proxy entre sus clientes y el servidor. Esto significa que inicias el fiddler y luego accedes al servidor usando el puerto del violinista en lugar del puerto habitual (el valor predeterminado para fiddler2 es 8888, creo). Si necesita depurar el servidor "en vivo" frente a clientes del mundo real, puede cambiar el enlace de IIS de: 80 a otra cosa y colocar el proxy de violín en el puerto 80.

EDITAR: por cierto, de forma predeterminada, fiddler2 cambia la configuración de proxy en tus navegadores para que accedan a todo a través de fiddler de todos modos (en la máquina en la que solo está instalado el violín)

9

Una variación útil de la respuesta de Eric (que fue editada por Brett) sería usar oSession.port para compilar el oSession.host. Con este pequeño cambio, si uno necesita capturar el tráfico expreso de IIS en http://localhost:12345, podrían usar http://iisexpress:12345. Eso hará que sea más fácil capturar tráfico para sitios con puertos aleatorios creados por WebMatrix y VS. Lo probé con IE y Firefox y capturar el tráfico de IIS Express fue muy fácil. Fiddler rocks !.

static function OnBeforeRequest(oSession:Fiddler.Session) 
{ 
    //... 
    // workaround the iisexpress limitation 
    // URL http://iisexpress:port can be used for capturing IIS Express traffic 
    if (oSession.HostnameIs("iisexpress")) { oSession.host = "localhost:"+oSession.port; } 
    //... 
} 
+0

Es posible que también desee agregar esto: 'oSession.utilReplaceInResponse (" localhost: "+ oSession.port," iisexpress: "+ oSession.port);' – Gebb

3

Con la última versión del violinista, sólo es necesario para navegar a localhost.fiddler: puerto. Sin embargo, hacerlo solo no me ayudó y todavía recibí acceso denegado al usar la Autenticación de Windows. Para solucionar esto, he encontrado esta entrada de blog: http://www.parago.de/2013/01/fiddler-and-the-401-unauthorized-error-with-asp-net-web-api-using-integrated-windows-authentication-wia/

En resumen, crear esta clave:

Ruta de la clave HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ MSV1_0 Nombre

Valor BackConnectionHostNames

Tipo de valor REG_MULTI_SZ

String Value localhost.fiddler