【问题标题】:How to view traffic from localhost to CRM?如何查看从 localhost 到 CRM 的流量?
【发布时间】:2018-02-24 21:42:43
【问题描述】:

我们正在使用OData Web API CRM 2016 endpoint

我正在创建一个请求,该请求从邮递员流向 localhost 微服务,然后流向 CRM:

Postman--->localhost 微服务--->CRM

我可以查看第一段的流量(Postman-->LocalHost);但是,提琴手跟踪显示 LocalHost-->CRM 没有任何进展。

Fiddler 显示来自 Postman-->LocalHost 的请求的以下数据:

POST https://localhost:19081/..../API/leads HTTP/1.1
Host: localhost:19081
Connection: keep-alive
Content-Length: 84
Cache-Control: no-cache
Origin: chrome-extension://aicmkgpgakddgnaphhhpliifpcfhicfo
MSCRMCallerID: D994D6FF-5531-E711-9422-00155DC0D345
X-Postman-Interceptor-Id: 84840bba-bc4b-9b06-d3ab-e264045e8918
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
Content-Type: application/json; charset=UTF-8
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8
Cookie: ai_user=Ka2Xn|2017-05-25T17:30:57.941Z

{
    "subject": "created by mscrmcaller user2: d994d6ff-5531-e711-9422-00155dc0d345"
}

但是,没有从 LocalHost-->CRM 截获任何内容!

请注意,这两个路由都是 HTTPS。

绕过本地主机时,流量可见!

请求是这样创建的:

//Create payload for request
var content = new StringContent(lead.ToString(), Encoding.UTF8, "application/json");
//Create POST request with data from above
var request = RequestCreator.Create(uri, validHeaders, HttpMethod.Post, content);
//Issue request
var postResponse = Client.Instance.SendAsync(request).Result;

我们做错了什么?

【问题讨论】:

标签: c# https odata dynamics-crm fiddler


【解决方案1】:

只需在端点配置中更改localhost --to--> localhost.fiddler。如果您想坚持使用 Fiddler,这将起到作用。

【讨论】:

    【解决方案2】:

    虽然您可以按照 Ondrej 的建议使用代理,但说 Fiddler 无法捕获 locahost 服务器-服务器流量是不准确的。

    更准确地说,如果没有该代理,Fiddler 只会捕获您用户身份的流量。

    因此,更简单的解决方案是将应用程序池更改为以您的用户身份(而不是服务帐户)运行。

    【讨论】:

      【解决方案3】:

      如果可能,请使用 Machine Name 代替 localhost ,并在 IIS Express 下运行微服务。这两个操作都会导致通过 Fiddler 代理发送包。

      【讨论】:

        【解决方案4】:

        Fiddler 不跟踪服务器到服务器的流量。您需要将“本地主机微服务”配置为通过提琴手代理(默认为 127.0.0.1:8888)。如果您的“本地主机微服务”是 .NET(看起来像),您可以添加

        <system.net>
          <defaultProxy>
            <proxy autoDetect="false" bypassonlocal="false" proxyaddress="http://127.0.0.1:8888" usesystemdefault="false" />
          </defaultProxy>
        </system.net>
        

        到您的 web.config(将为您的服务使用 fiddler 作为代理)或 machine.config(将为任何 .NET 应用程序使用 fiddler 代理)。

        机器配置在这里:

        c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
        c:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
        

        参考:http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureDotNETApp

        由于您的连接是通过 HTTPS,您还需要配置 fiddler 以解密 HTTPS 流量(工具->选项->HTTPS->解密 HTTPS 流量)。

        编辑

        此建议假设您将在与“localhost 微服务”机器相同的机器上运行 fiddler,但只要端口 8888 可以从“localhost 微服务”机器访问,并且 fiddler 机器可以访问,您几乎可以在任何地方运行 fiddler向最终目的地(在您的情况下为 CRM 机器)发出 http 请求。如果您想在其他地方运行 fiddler,只需将 proxyaddress 配置为不同的 ip,例如 http://10.0.0.1:8888。在这种情况下,您还需要配置 fiddler 以允许远程传入流量(工具->选项->连接->允许远程计算机连接)

        【讨论】:

        • 在app.config中添加就可以了吗?这是一个自托管的应用程序lh3.googleusercontent.com/-F97uGlsLFHc/Wb_5g2vLVII/AAAAAAAADvQ/…
        • 所以你建议将system.net等添加到localhost服务的配置中,然后在TARGET机器上启动fiddler并拦截?
        • 我只是不理解调用的顺序。首先,我用休息动词调用本地服务。然后您说的是本地服务,而不是将请求转发到带有 CRM 的目标计算机,它实际上将其转发到正在运行的 Fiddler 本地实例?然后 Fiddler 的本地实例会以某种方式将流量转发到预期的目的地?
        • @l--''''''------'''''''''''' - 准确地说。这种机制称为 http 代理 - fiddler 只是众多机制之一。 .NET 具有指定“应用程序范围”http 代理的机制 - 通过配置(建议)或在运行时。
        【解决方案5】:

        我使用 WireShark (https://www.wireshark.org/) 来检查此类流量。
        Fiddler 的工作方式类似于本地代理服务器,因此您无法找到计算机发送或接收的所有数据包。
        Windows 中的 WireShark 就像流量过滤器一样工作。您可以侦听环回流量、到您需要的任何服务器的流量、精确接口的流量,您可以使用过滤器来查找所需的数据包。
        如果您需要侦听 SSL 流量,也可以使用 WireShark(如果您有两个密钥,用于服务器和客户端),但在 Fiddler 中并不难。因为 Fiddler 就像中间人,而 WireShark 需要解密 SSL 数据包 (https://wiki.wireshark.org/SSL)。
        要监听环回流量,您需要安装 npcap 驱动程序而不是 WinPcap (https://nmap.org/npcap/)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-10-11
          • 1970-01-01
          • 2018-03-07
          • 1970-01-01
          • 2010-09-17
          • 1970-01-01
          • 2011-11-02
          • 2012-01-04
          相关资源
          最近更新 更多