使用fiddler从msiexec捕获http请求

时间:2012-07-26 23:42:02

标签: httpwebrequest windows-installer fiddler

如何使用msi包在安装过程中捕获fiddler请求?

我有一个应用程序,通过覆盖windows msi包中的install方法,在安装过程中发出多个http请求。

我希望能够使用fiddler捕获这些请求,但不能。 MS Network Monitor 3.4会捕获请求,因此我知道活动正在进行中。

我可以启动fiddler并捕获在浏览器中发出的请求,因此fiddler本身正在工作,我没有设置它或我的安装程序使用任何非标准端口。

我现在只是创建一个请求并尝试获取响应:

var httpRequest = (HttpWebRequest)WebRequest.Create(url);
        try
        {
            using (var httpResponse = (HttpWebResponse)httpRequest.GetResponse())
            {
                using (var responseStream = httpResponse.GetResponseStream())
                {
                    if (responseStream != null)
                        responseStream.Close();
                }

我做了一些研究,并得出结论,提琴手应该能够抓住这个,所以我不确定我做错了什么。任何建议都将非常感谢,谢谢。

更新:我已经在安装程序方法中使用了我正在使用的代码,并将其放在一个独立的控制台应用程序中。 Fiddler在该场景中捕获请求。所以我所看到的是,安装程序以某种方式隐藏了请求,所以fiddler没有看到它。

1 个答案:

答案 0 :(得分:1)

我没有和Fiddler合作,所以我不知道你怎么告诉它要看什么,但是大多数自定义动作都在与原始msiexec进程不同的进程中执行。非模拟操作通常在完全不同的上下文中执行(通常是管理用户)。