Fiddler与WebAPI的表现不稳定

6
我们有一个环境,使用.NET CORE的web-api。由于我们无法在IIS中托管它,因此我们使用fiddler进行代理。现在,我有一个.NET客户端调用这个服务。
但是,对服务的调用非常不稳定,连续几次调用之后突然停止调用,尽管这些调用之间没有任何变化,实际上是“不稳定的”。不确定是什么导致其表现不一致。
我阅读了一些文章,他们建议将ipv6.fiddlerlocalhost.fiddler作为我的URL,但似乎没有任何帮助。
我还更新了我的配置文件,如Telerik网站上这里所述。但那也没起作用。
有什么想法吗?

1
听起来好像有东西认为自己正在受到攻击...最后一次调用后它总是在特定的时间内恢复吗? - The Bearded Llama
嗯...这是一个有趣的看法。实际上,我还没有从那个角度测试过它,但是连续调用在一段时间后会失败,而早上或长时间后的第一个调用“大多数情况下”可以正常工作。在我给你一个精确的答案之前,我可以进行更多的测试。 - Lost
你尝试过使用Kestrel或Web Listener来查看行为是来自Fiddler还是“你的代码”吗? - The Bearded Llama
好的,我可以尝试一下,但是当服务从浏览器或测试框架中调用时,它从来没有出现过这个问题。Fiddler 在那里似乎工作得很好。但是只有当 Web 客户端调用时,才会出现这种行为。 - Lost
好的。这可能是一种完全错误的解决方案。结果表明,这与Fiddler或调用的应用程序是WebClient没有关系。问题出在准备调用的方法上,包括URL和参数异步,而且这个方法应该被等待,但实际上没有等待,所以当它被调用时,所有细节都混在一起。有时请求被正确构造,有时则不是。有趣的是。 - Lost
显示剩余2条评论
1个回答

2
在我的理解中,连接到本地主机并不总是有效的。我也遇到过这种情况。正如相关文章所述:
- 允许.NET Framework自动连接到Fiddler,请在启动.NET应用程序之前启动Fiddler。 - 有许多因素可能会影响本地主机流量,本地主机流量不会通过默认的网络接口或驱动程序,因此网络工具(例如Wireshark或Netmon等)无法正确捕获它,因此捕获本地主机流量有些困难。如果您想在URL中使用本地主机,您必须确保:
1. Fiddler在应用程序启动之前启动,以便Fiddler可以钩入默认代理 2. 在应用程序设置中,尝试通过ipv4.fiddler路由流量 3. 您还可以轻松编写一个自定义代理,在.NET Core中使用配置开关使用.NET Core代理启用它。
或者一个更简单或更好的方法是使用机器名称而不是本地主机。这将确保如果Fiddler作为代理启动侦听,它将始终捕获流量。
e.g. http://localhost/api may or may not appear in fiddler but http://mymachine/api will always be captured.

好的。我重新启动了我的计算机并将 Fiddler 作为第一件事启动。接着我启动了我的 VS 实例,并将位置从 localhost 更改为 machinename。它可以工作5个左右的调用,然后突然失去了连接。有趣的是这只是 .net 客户端的问题而不是浏览器的问题。 - Lost
如果你真的想了解 .net 客户端发生了什么以及它如何获取代理,你需要进行系统.net跟踪 https://msdn.microsoft.com/zh-cn/library/ty48b824(v=vs.110).aspx 。这将告诉你它是如何找到代理以及使用了哪个代理。我不确定你是否在公司网络内,域策略规则可能会覆盖代理设置并影响默认代理的使用,这可能是你在5分钟后失去连接的原因之一。使用机器名称而不是本地主机名难吗? - Rohith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接