挂起以查看VS Web应用程序何时完成启动

时间:2014-10-01 13:59:01

标签: visual-studio vspackage visual-studio-sdk

我正在编写一个Visual Studio扩展(作为a VS Package),我正在尝试测量从用户单击启动Web应用程序到在Web浏览器中打开新选项卡的时间它已经准备好了。

理想情况下,我想测量Web应用程序启动时的启动时间:

  • 调试→开始调试(F5)
  • 调试→无需调试启动(Ctrl + F5)

使用IVsUpdateSolutionEvents4我可以看到用户何时开始并完成:

  • 构建解决方案(SBF_OPERATION_BUILD
  • 重建解决方案(SBF_OPERATION_BUILD | SBF_OPERATION_FORCE_UPDATE
  • 清洁解决方案(SBF_OPERATION_CLEAN

使用IVsDebuggerEvents.OnModeChange我可以看到:

  • 用户单击调试→开始调试DBGMODE_Run
  • 用户点击停止调试DBGMODE_Design

但是,我还没有找到一个好的钩子来查看应用程序何时完成启动。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我不希望有“魔术钩”可用。对于Web应用程序,我认为VS会这样做:

  • 用户点击“调试”
  • VS将软件包部署在临时位置
  • VS创建WebBrowserInterface
  • VS将URL发送到浏览器并触发导航

此时VS已经完成了它的工作,但还有很多事要做。

  • 浏览器将请求发送到网络服务器
  • Web服务器加载应用程序
  • Web服务器将响应发送到浏览器。

因此浏览器是知道用户可以开始使用该应用程序的人,他必须负责解雇您正在寻找的事件。

这很难获得,因为程序员可以选择默认浏览器Chrome,Safari,Firefox等。

我的意见是,您需要监控IIS活动并检测启动新Web应用程序时发生的模式。