如何在调试 ASP.NET 应用程序时在 Fiddler 中显示 localhost 流量?
14 回答
尝试使用这个:
http://ipv4.fiddler/folder
代替
http://localhost/folder
这也适用于端口
http://ipv4.fiddler:12345/folder
这是提琴手文档的链接
http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/MonitorLocalTraffic
要使 Fiddler 使用 IIS Express 在 localhost 上工作,您应该使用这种形式的 URL
http://localhost.fiddler:50262/
这会放置满足 IIS Express 的正确主机标头值 (localhost)。
启动提琴手。转到工具-> Fiddler 选项。选择连接选项卡。选中“使用 PAC 脚本”选项。
现在您还可以监控本地流量
对于 ASP.NET 网站项目:
1) 右键单击项目并选择属性页
2) 选择启动选项
3) 在服务器部分下,单击“使用自定义服务器”并通过将 localhost 替换为您的计算机名称来编辑基本 URL。
监控到 localhost 的流量的最简单方法可能是将“localhost”替换为“localhost”。在浏览器的 URL 栏中。例如
http://localhost./MyApp/default.aspx
使用提琴手 v4:
- 检查您的 IE 代理设置
IE->工具->Internet选项->连接->局域网设置
- 检查您在 Fiddler 中的设置:
Fiddler -> 选项 -> 连接和 Https
- 在提琴手菜单中:
文件 -> 捕获流量已选中
以下解决方案对我有用,当使用
- HttpClient 或
- 来自 ASP.NET 应用程序内部的 WebClient。
网页配置
<system.net>
<defaultProxy
enabled = "true"
useDefaultCredentials = "true">
<proxy autoDetect="False" bypassonlocal="False" proxyaddress="http://127.0.0.1:8888" usesystemdefault="False" />
</defaultProxy>
代码:
var resourceServerUri = new Uri("http://localhost.fiddler:YourAppServicePort");
var body = c.GetStringAsync(new Uri(resourceServerUri)).Result;
通过自定义 Fiddler 规则脚本检查您的请求是否真正到达 fiddler
Fiddler->规则->自定义规则
并挂钩到OnBeforeRequest事件:
static function OnBeforeRequest(oSession: Session) {
if (oSession.hostname.Contains("localhost:YourPortNumber")
{
System.Windows.Forms.MessageBox.Show(oSession.hostname);
}
或者通过设置网络代理明确
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));
在公司 Intranet 中使用 IIS Express 时,检查 Fiddler 选项 -> 连接中的“使用 PAC 脚本”对我有用。
您可以使用 PC 主机名而不是 127.0.0.1 或 localhost
看看这个链接......“解决方法”是 hacky,但它确实有效:
确保在您的 Fiddler 连接中,localhost 不在“IE 应绕过 Fiddler 以获取以:开头的 URL”框。
您应该取消选中该复选框:
绕过本地地址的代理服务器
位于 Internet Explorer 的代理配置中。
尝试使用http://127.0.0.1。<-- 注意 . 在最后
所以你仍然可以连接到 Casini 并轻松调试(我目前正在调试页面http://127.0.0.1.:1718/login/Default.aspx)。
一种可能的解决方案是删除 IE 中的代理设置,如下所示。
IE->Tools->Internet Options->Connections->Lan Settings->
禁用关注
- 自动检测设置
- 使用自动配置脚本
如果尝试使用 Fiddler 从 BizTalk 捕获本地计算机上的 HTTPS 流量,请尝试使用 WCF 适配器代理设置。我使用的地址是:http://localhost:8888/