【问题标题】:How to debug Json between Local IIS Website and Local如何在本地 IIS 网站和本地之间调试 Json
【发布时间】:2013-08-06 11:11:58
【问题描述】:

我真的很难知道这里的问题是什么......

我在 IIS 中配置了 2 个网站...

**PH.Website**   (STANDARD MVC PROJECT)

**PH.Api**       (MVC WEB API PRIOJECT)

当您点击 PH.Website 时,它​​使用其中一个控制器中的 WebClient 类从 PH.Api 下载数据。然而 fiddler 只看到流向 PH.Website 而不是 PH.Api 的流量。

在互联网上阅读之后,我显然必须在 Web Api 项目中对 Syste.Net 进行一些配置。所以我加了...

  <system.net>
    <defaultProxy>
      <proxy
              usesystemdefault="False"
              bypassonlocal="True"
              proxyaddress="http://PH.Api"
              />
    </defaultProxy>
  </system.net>

但仍然没有运气。我知道请求正在发生,我只是看不到它。

更令人困惑的是,当我将 Fiddler 配置为使用端口 80 时,它说它无法侦听该端口。但是,如果它不能在 80 上监听,那么它怎么能看到 Http 端口:80 上的流量呢?

附:我真的需要能够在本地运行多个站点。我讨厌在 Localhost 或 127.0.0.1 下运行站点,因为您可以为 IIS 中的所有内容创建单独的站点并确切知道所有内容的映射位置......

【问题讨论】:

    标签: rest asp.net-mvc-4 asp.net-web-api fiddler wcf-web-api


    【解决方案1】:

    让我们备份。

    Fiddler 是一个代理服务器;它会看到发送给它的所有流量。一般来说(除非您将其用作反向代理),您永远不想将 Fiddler 配置为在端口 80 上运行;而是将其保留在默认运行的端口 8888 上。您改为配置 客户端 以代理其流量通过 Fiddler。

    现在,你做了什么“在互联网上阅读”导致你修改你的 machine.config 或 web.config 文件(你没有提到你编辑的)?

    如果您的目标是使用 Fiddler 监视流量,您需要 point the ASP.NET proxy settings at Fiddler,而不是任何“PH.api”(例如,使用“127.0.0.1:8888”并将 bypassOnLocal 设置为 false)。进一步的复杂性在于 System.NET 绕过对“localhost”或“127.0.0.1”的任何请求的代理,因此,如果您将这些地址用于目标,则应暂时将它们更改为“localhost.fiddler”,同时调试。

    【讨论】:

    • YESSSS 非常感谢。我将我的 MVC 项目设置为指向 127.0.0.1:8888 上的提琴手,它可以工作。这是我的另一个快速问题,但提琴手如何知道如何将流量转发到?代理的这个概念让我在它是如何工作的方面感到困惑(我知道代理这个词是什么意思)。我的数据包是如何最终到达 PH.api 的?为了回答你的问题,我改变了机器,在你的建议之后我改变了 web.config。我认为更改 web.config 对于学习目的来说更清楚......
    • 代理服务器通过 HTTP 请求行(标头的第一行)和 HOST 标头获知请求的目标。
    猜你喜欢
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 2012-07-17
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    相关资源
    最近更新 更多