首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查看从本地主机到CRM的流量?

如何查看从本地主机到CRM的流量?
EN

Stack Overflow用户
提问于 2017-09-15 16:25:00
回答 5查看 810关注 0票数 1

我们正在使用OData Web 2016端点

我正在创建一个从邮递员到本地主机微服务的请求,然后流向CRM:

邮递员-->本地主机微型服务-->CRM

我能够从第一段(Postman->LocalHost)查看流量;然而,提示跟踪没有显示任何来自LocalHost->CRM的信息。

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

代码语言:javascript
复制
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。

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

请求的创建方式如下:

代码语言:javascript
复制
//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;

我们做错什么了?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-09-18 14:22:03

Fiddler不跟踪服务器到服务器的通信量。您需要将"localhost microservice“配置为通过fiddler代理(默认情况下为127.0.0.1:8888)。如果您的"localhost microservice“是.NET (似乎是这样),您可以添加

代码语言:javascript
复制
<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代理)。

机器托拉斯在这里:

代码语言:javascript
复制
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通信量(Tools->Options-> HTTPS ->Decrypt流量)。

编辑

这个建议假设您将在与"localhost microservice“机器相同的机器上运行fiddler,但只要端口8888就可以运行fiddler,只要端口8888就可以从"localhost microservice”机器到达它,并且fiddler机器可以向最终目的地发出http请求(在您的情况下是CRM机器)。如果您想在其他地方运行fiddler,只需将proxyaddress配置为不同的ip,例如http://10.0.0.1:8888。在这种情况下,您还需要配置fiddler以允许远程传入通信量(Tools->Options->Connections->允许远程计算机连接)。

票数 7
EN

Stack Overflow用户

发布于 2017-09-18 22:22:17

我使用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/)。

票数 2
EN

Stack Overflow用户

发布于 2017-09-22 15:03:42

如果可能的话,使用localhost代替Machine Name,在IIS下运行微服务。这两种行为都会导致通过Fiddler代理发送包裹。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46243952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档