【问题标题】:Process ID of http request, installerhttp请求的进程ID,安装程序
【发布时间】:2012-07-13 23:14:42
【问题描述】:

我试图找出在安装 msi 包期间是否发出了任何 http 请求。在我看来,发出 http 请求的进程与执行安装程序的进程没有任何血缘关系。

例如,我安装了一个在安装过程中进行 http 调用的应用程序。使用 SysInternals 进程监视器,我看到安装开始时创建的进程。使用 MS NetworkMonitor,我可以看到用于生成 http 请求的过程。事后在Process Monitor中过滤显示http进程和install进程没有关系。

我在想,无论何时发出 http 请求,操作系统都会以某种方式说要使用新进程。我最重要的要求是我能够将一个与另一个相关联,以便明确地说“此应用安装在安装期间调用了这些 http 资源”。所以我不必完全理解这一切在幕后是如何运作的,但是,我现在处于停滞状态。我得出的结论是,没有办法将两者联系起来。我错了吗?

【问题讨论】:

    标签: winapi http process installation windows-installer


    【解决方案1】:

    好的,让我们假设msiexec.exe 调用了一个助手,而该助手调用了导致 HTTP 流量的任何东西。在第一个助手生成孩子之后,它会杀死自己。这个过程太短暂,无法正常看到这里的关系。

    进入进程监视器的“进程树”功能。保持进程监视器运行,而不对进程事件进行任何过滤。完成后,您可以按 Ctrl+T 来查看进程树(见下文)。

    灰色图标告诉您该进程不再处于活动状态。此外,最后一列是过程的结束时间。但最重要的是,您可以看到哪个进程从中创建了哪个其他进程,即使对于非常非常短暂的进程也是如此。

    Mark Russinovich,Process Monitor 及其前任的作者,大约一个月前在 TechEd 上demonstrated this

    虽然这可能无法完全回答问题,但它应该能让您朝着正确的方向前进。毕竟 Process Monitor 还包括网络活动过滤(尽管与 Network Monitor 和 Wireshark 相比很粗糙:))。

    顺便说一句:上面屏幕截图中的绿色条是“时间线”,您可以在其中查看进程相对于其他进程的运行时间。非常漂亮。

    【讨论】:

      【解决方案2】:

      您是否使用自定义操作来发出网络请求? Windows Installer 服务进程在与您的主设置实例不同的 MSIEXEC 实例中运行自定义操作。

      更多信息在这里: http://blogs.msdn.com/b/astebner/archive/2005/03/02/384088.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-24
        • 1970-01-01
        • 1970-01-01
        • 2020-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-04
        相关资源
        最近更新 更多