asp.net - 如何监控所有传入的 http 请求?

标签 asp.net fiddler

我需要监控我的应用程序是否收到传入的 http POSTGET 请求,这些请求来自机器外部,有时来自机器内部。

这可能吗?

一直在使用 fiddler,但这只是传出而不是传入(从机器外部)还是我配置不正确?

这适用于我的网络应用程序,该应用程序旨在从外部服务器接收 POST

最佳答案

你需要做的是configure Fiddler to work as a "reverse proxy"

在 Fiddler 的网站上有关于执行此操作的 2 种不同方法的说明。以下是步骤的副本:


第 0 步

在以下任一选项起作用之前,您必须使其他计算机能够连接到 Fiddler。为此,请单击工具 > Fiddler 选项 > 连接并勾选“允许远程计算机连接”复选框。然后关闭 Fiddler。

选项 #1:将 Fiddler 配置为反向代理

Fiddler 可以配置为任何发送到 http://127.0.0.1:8888 的流量都会自动发送到同一台机器上的不同端口。要设置此配置:

  1. 启动注册
  2. 在 HKCU\SOFTWARE\Microsoft\Fiddler2 中创建一个名为 ReverseProxyForPort 的新 DWORD。
  3. 将 DWORD 设置为您希望将入站流量重新路由到的本地端口(通常是标准 HTTP 服务器的端口 80)
  4. 重启 fiddler
  5. 将浏览器导航至 http://127.0.0.1:8888

选项 #2:编写 FiddlerScript 规则

或者,您可以编写一个规则来做同样的事情。

假设您正在一台名为 WEBSERVER 的机器的 80 端口上运行一个网站。您正在 Windows SmartPhone 设备上使用 Internet Explorer Mobile Edition 连接到该网站,您无法为其配置 Web 代理。您想要捕获来自电话的流量和服务器的响应。

  1. 在 WEBSERVER 机器上启动 Fiddler,在默认端口 8888 上运行。
  2. 点击工具 | Fiddler 选项,并确保选中“允许远程客户端连接”复选框。如果需要重新启动。
  3. 选择规则 |自定义规则。
  4. 在 OnBeforeRequest 处理程序中,添加一行新代码:
    if (oSession.host.toLowerCase() == "webserver:8888") oSession.host = "webserver:80";
  5. 在智能手机上,导航至 http://webserver:8888

来自智能手机的请求将出现在 Fiddler 中。请求从端口 8888 转发到运行 Web 服务器的端口 80。响应通过 Fiddler 发送回智能手机,智能手机不知道内容最初来自端口 80。

关于asp.net - 如何监控所有传入的 http 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4428680/

相关文章:

ASP.NET MVC - 如何创建 RESTful Controller 方案?

c# - Windows 身份验证在部署 MVC 站点时不起作用

c# - 除非 fiddler 正在运行,否则 HttpWebRequest 不起作用

ssl - Fiddler 未捕获某些网站

c# - 在fiddler中捕获内部请求调用

ssl - 将 Fiddler 作为 HTTPS 服务器的反向代理运行

c# - MVC应用程序多次调用资源

javascript - 在尝试使用 (Date.now - Date) 方程计算年龄时更改 asp :textbox text using jquery. js

jquery - Request.IsAjaxRequest 在 MVC3 中永远不会返回 true

c# - ASP.NET/DotNetNuke - 将 HTML 添加到用户控件的正文中