我在开发 Web 应用程序时使用 IIS7 Express。我需要使用提琴手来调查一个问题,但无法弄清楚如何配置东西,所以我可以获得 HTTP 流。似乎 IIS7 express 只会在 localhost 上侦听,这意味着我无法访问流。
4 回答
这与 IIS7 Express 无关,而与您使用环回流量这一事实无关。
参考:https ://www.fiddlerbook.com/fiddler/help/hookup.asp#Q-LocalTraffic
单击规则 > 自定义规则。
像这样更新您的规则文件:
static function OnBeforeRequest(oSession:Fiddler.Session)
{
if (oSession.HostnameIs("MYAPP")) { oSession.host = "localhost:portnumber"; }
}
然后,只需http://myapp
在浏览器中访问。
或者使用地址http://localhost.fiddler/
,Fiddler 将使用主机名localhost
而不是转换为 IP 地址。
Eric 的答案(由 Brett 编辑)的一个有用变体是oSession.port
用于构建oSession.host
. 有了这个小改动,如果需要在 IIS 上捕获快速流量http://localhost:12345
,他们可以使用http://iisexpress:12345
. 这将更容易捕获 WebMatrix 和 VS 创建的具有随机端口的站点的流量。我用 IE 和 Firefox 进行了尝试,捕获 IIS Express 流量轻而易举。提琴手摇滚!
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; }
//...
}
使用最新版本的 fiddler,您只需要导航到 localhost.fiddler:port。但是,单独这样做并没有帮助我,并且在使用 Windows 身份验证时我仍然被拒绝访问。为了解决这个问题,我发现了这个博客条目: http: //www.parago.de/2013/01/fiddler-and-the-401-unauthorized-error-with-asp-net-web-api-using-integrated- windows-身份验证-wia/
简而言之,创建此密钥:
密钥路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\Lsa\MSV1_0
值名称BackConnectionHostNames
值类型REG_MULTI_SZ
字符串值localhost.fiddler
您可以使用 fiddler 作为客户端和服务器之间的代理。这意味着您启动 fiddler,然后使用 fiddler 的端口而不是通常的端口访问服务器(我认为 fiddler2 的默认端口是 8888)。如果您需要调试服务器“实时”与真实世界的客户端,您可以将 IIS 绑定从 :80 更改为其他内容,并将 fiddler 的代理放在端口 80 上。
编辑:顺便说一句,默认情况下,fiddler2 会更改浏览器上的代理设置,以便它们通过 fiddler 访问所有内容(仅在安装了 fiddler 的机器上)