调试 ASP.NET 应用程序时如何在 Fiddler 中显示本地主机流量?

Posted

技术标签:

【中文标题】调试 ASP.NET 应用程序时如何在 Fiddler 中显示本地主机流量?【英文标题】:How to display localhost traffic in Fiddler while debugging an ASP.NET application? 【发布时间】:2010-10-23 23:48:11 【问题描述】:

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

【问题讨论】:

从 IE9 开始,不需要特殊技巧。 blogs.msdn.com/b/fiddler/archive/2011/02/10/… 【参考方案1】:

尝试使用这个:

http://ipv4.fiddler/folder

而不是

http://localhost/folder

这也适用于端口

http://ipv4.fiddler:12345/folder

这里是提琴手文档的链接

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

【讨论】:

注意:只有 IE 需要,并且只有 IE8 和更早版本才需要。 【参考方案2】:

要让 Fiddler 使用 IIS Express 在 localhost 上工作,您应该使用这种形式的 URL

http://localhost.fiddler:50262/

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

【讨论】:

这对我来说是一种享受,我尝试从在 Visual Studio/IIS Express 下运行的测试站点使用 Excel OData 提要导入。 我的头撞墙了,这对我也很有用!谢谢! 这适用于本地托管的 IIS express Asp.net web api。干杯。【参考方案3】:

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

现在您也可以监控本地流量了

【讨论】:

我在添加 .使用 SSL 和我们公司的代理,但更改此设置可以解决问题。谢谢!【参考方案4】:

对于 ASP.NET 网站项目:

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

【讨论】:

【参考方案5】:

监控到 localhost 的流量的最简单方法可能是将“localhost”替换为“localhost”。在浏览器的 URL 栏中。例如

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

【讨论】:

【参考方案6】:

使用 Fiddler v4:

    检查您的 IE 代理设置

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

    检查您在 Fiddler 中的设置:

Fiddler -> 选项-> 连接和 Https

检查 Fiddler 端口,默认为 8888

    在 Fiddler 菜单中:

文件 -> 捕获流量被选中

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

HttpClient 或 网络客户端 从 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>

代码

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));

【讨论】:

【参考方案7】:

查看此链接...“解决方法”很老套,但确实有效:

Tip for using Fiddler on localhost

【讨论】:

我试过那个方法,它提示我弹出一个 IE 凭据。我输入我的 AD 用户凭据并获得 HTTP 401.1 登录失败。 我在博客文章中的一个 cmets 中提供了答案和建议。【参考方案8】:

您可以使用 PC 主机名而不是 127.0.0.1 或 localhost

【讨论】:

【参考方案9】:

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

【讨论】:

不知道发生了什么,但我最近将提琴手升级到 v4.6.2.2 并且检查“美国 PAC 脚本”实际上阻止了提琴手的工作。我不得不取消选中该选项才能让事情再次正常运行...【参考方案10】:

确保在您的 Fiddler 连接中,localhost 不在“IE 应绕过 Fiddler 以获取以:开头的 URL”框。

【讨论】:

“IE 应该绕过 Fiddler 以获取以开头的 URL”为空。【参考方案11】:

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

本地地址绕过代理服务器

位于 Internet Explorer 的代理配置中。

【讨论】:

【参考方案12】:

试试http://127.0.0.1。

所以你仍然可以连接到 Casini 并轻松调试(我目前正在调试页面 http://127.0.0.1.:1718/login/Default.aspx )。

【讨论】:

如果是本地主机。答案不适合你(因为它不适合我)【参考方案13】:

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

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

禁用关注

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

【讨论】:

【参考方案14】:

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

【讨论】:

Mi hijo und dessen Frau 不得不买一些纯种的猫,因为他们又带着另一个 gato letzte nacht 回家了。

以上是关于调试 ASP.NET 应用程序时如何在 Fiddler 中显示本地主机流量?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 2015 asp.net 5 中调试 Typescript?

如何调试或记录 ASP.net 页面

IIS Express 在调试 ASP.NET MVC 时出现拒绝访问错误

如何在本地 IIS 而非 Express 中调试 ASP.NET 5 Web 应用程序

为啥调试我的asp.net网站时有时会弹出反汇编程序/反汇编窗口?

如何在 ASP.Net MVC 6 中编辑和继续