【问题标题】:HTTP traffic between asp.net mvc applications not visible to FiddlerFiddler 看不到 asp.net mvc 应用程序之间的 HTTP 流量
【发布时间】:2013-05-16 16:13:13
【问题描述】:

我有一个 ASP.NET MVC 4 应用程序,它需要查询另一个应用程序来处理请求。 MVC 应用程序通过 REST 发出请求。我可以看到从浏览器到 MVC 应用程序的传入 HTTP 请求,但我看不到从 MVC 应用程序到 REST 应用程序的出站 REST 调用。

这两个应用程序都在 IIS Express 中运行。我访问 MVC 应用程序 localhost:42001 并且 REST 应用程序正在使用 ASP.NET MVC WebAPI,在 localhost:42002 上侦听

如何获取到 localhost:42002 的 REST 请求?

请求正在发送到 REST 应用程序,我还可以在该代码中设置和命中断点。我只是看不到 Fiddler 的流量。

【问题讨论】:

  • 我怀疑您正在使用 MVCAPP 的服务器到服务器 REST 请求与 MVCWEBAPI 进行通信?您不会在 Fiddler 中看到它们,因为它们不是来自您的浏览器,它们是内部 HTTP 调用。
  • 尝试使用机器名而不是 localhost,在我的例子中,只有在 fiddler 上可见请求。
  • 我有一个类似的问题:我已经修改了 machine.config 文件并且我看到了我的前端调用控制器的位置,但我仍然没有看到对 restful 服务的调用。有什么办法可以捕捉到吗?

标签: asp.net asp.net-mvc fiddler


【解决方案1】:

这是因为 Fiddler 是一个代理。您的浏览器通过 Fiddler 过滤所有请求。您的网络服务器未通过 Fiddler 进行代理,因此网络服务器到网络服务器的流量不会通过 Fiddler。

要让它工作,您需要告诉您的网络应用程序使用 Fiddler 的代理。您似乎可以关注http://fiddler2.com/documentation/Configure-Fiddler/Tasks/ConfigureDotNETApp,其中包含有关如何配置您的 Web 应用程序以通过代理发送所有请求的一些信息。

另一个想法,如果你愿意做一些数据包嗅探,你可以使用Wireshark 这样的东西,它会捕获所有在你的计算机上来来往往的流量,然后你可以过滤掉到您需要的信息。这对于您正在寻找的东西来说太过分了,但在某些时候可能会有所帮助。

【讨论】:

    【解决方案2】:

    默认情况下,Fiddler 代理从当前用户帐户发送的请求。 ASP.NET 在不同的用户帐户中运行。有关如何从服务帐户(如 IIS/ASP.NET 正在使用的帐户)捕获 Web 流量的详细信息,请参阅 http://fiddler2.com/blog/blog/2013/01/08/capturing-traffic-from-.net-services-with-fiddler

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多