调试ASP.NET应用程序时如何在Fiddler中显示localhost通信?


Answers:


87

尝试使用此:

http://ipv4.fiddler/folder

代替

http://localhost/folder

这也适用于端口

http://ipv4.fiddler:12345/folder

这是提琴手文档的链接

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


注意:仅对于IE和IE8及更早版本才需要。<= IE8非常聪明,它知道您不想使用代理服务器来进行本地通信!因此,它认为“本地主机”在您的网址和提琴手如何挂钩不符合你的愚蠢的代理服务器设置,这是麻烦。
斯科特斯塔福德

52

要使Fiddler与IIS Express一起在localhost上运行,您应该使用这种形式的URL

http://localhost.fiddler:50262/

这将放入满足IIS Express的正确的主机标头值(localhost)。


这对我尝试使用从运行在Visual Studio / IIS Express下的测试站点的Excel OData feed导入有效。
基思·希尔

我的头撞在墙上,这对我也很好!谢谢!
sǝɯɐſ 2014年

这适用于本地托管的IIS Express Asp.net Web API。干杯。
拉格

19

启动Fiddler。转到工具->提琴手选项。选择“连接”选项卡。检查“使用PAC脚本”选项。

现在您也可以监视本地流量


1
我在添加时遇到了问题。与SSl和我们的公司代理一起使用,但是更改此设置可以解决问题。谢谢!
对齐

12

对于ASP.NET网站项目:

1)右键单击该项目,然后选择“属性页”
2)选择“启动选项”
3)在“服务器”部分下,单击“使用自定义服务器”,然后通过将localhost替换为计算机名称来编辑基本URL。


7

监视到本地主机的流量的最简单方法可能是将“本地主机”替换为“本地主机”。在浏览器的网址栏中。例如

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


3

您可以使用PC主机名代替127.0.0.1或localhost


3

在公司Intranet中使用IIS Express时,在Fiddler选项->连接中检查“使用PAC脚本”对我有用。


不太确定发生了什么,但是我最近将提琴手升级到了v4.6.2.2,检查“美国PAC脚本”实际上阻止了提琴手的工作。我必须取消选中该选项才能使事情再次运行...
David Norris-Hill

3

使用Fiddler v4:

  1. 检查您的IE代理设置

IE->工具-> Internet选项->连接->局域网设置

IE Lan设置

  1. 检查Fiddler中的设置:

提琴手->选项->连接和Https

检查Fiddler端口,默认为8888 提琴手端口

  1. 在提琴手菜单中:

文件->捕获流量已选中

以下解决方案对我有效,当使用

  • HttpClient或
  • 来自ASP.NET应用程序内部的WebClient。

Web.config

<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 Rules脚本来检查您的请求是否真正到达了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));

2

确保在您的Fiddler Connections中,本地主机不在“ IE应该绕过Fiddler的URL开头:”框中。


1
“ IE应该绕过Fiddler开头的URL”为空。
Michael Kniskern

2

您应该取消选中该复选框:

绕过本地地址的代理服务器

位于Internet Explorer的代理配置中。



2

一种可能的解决方案是按如下所示删除IE中的代理设置。

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

禁用关注

  • 自动检测设置
  • 使用自动配置脚本

1

如果尝试使用Fiddler从BizTalk中捕获本地计算机上的HTTPS通信,请尝试使用WCF适配器代理设置。我使用了以下地址:http://localhost:8888/


Mi hijo和dessen Frau必须购买一些纯猫,因为它们带着另一只gato letzte饼干回家了。
B. Clay Shannon
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.