如何查看从localhost到CRM的流量?

l--*_*''' 1 c# https fiddler dynamics-crm odata

我们正在使用OData Web API CRM 2016端点.

我正在创建一个请求,从postman,localhost微服务,然后到CRM:

邮差---> 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"
}
Run Code Online (Sandbox Code Playgroud)

但是,没有任何东西被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;
Run Code Online (Sandbox Code Playgroud)

我们做错了什么?

Ond*_*dar 7

Fiddler不跟踪服务器到服务器的流量.您需要将"localhost microservice"配置为通过fiddler代理(默认为127.0.0.1:8888).如果您的"localhost微服务"是.NET(看起来像它),您可以添加

<system.net>
  <defaultProxy>
    <proxy autoDetect="false" bypassonlocal="false" proxyaddress="http://127.0.0.1:8888" usesystemdefault="false" />
  </defaultProxy>
</system.net>
Run Code Online (Sandbox Code Playgroud)

要么你的web.config(将fiddler用作你的服务的代理)或machine.config(将使用fiddler代理用于任何.NET应用程序).

机器配置在这里:

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
c:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
Run Code Online (Sandbox Code Playgroud)

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

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

编辑

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