首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用adplus.vbs捕获转储-等待调试器完成?

使用adplus.vbs捕获转储-等待调试器完成?
EN

Stack Overflow用户
提问于 2009-12-28 03:36:19
回答 2查看 964关注 0票数 1

我有一个web应用程序,它有时会挂起。我想要调查原因,当进程挂起时,我需要获得进程的内存转储。

所以我的想法是监控网站,当我检测到挂起时,我想启动一个捕获内存转储的.bat脚本,然后运行IISRESET以重新启动,以便网站再次开始响应。

我的问题是,adplus启动另一个进程(cdb.exe)并立即返回。我需要等待cdb.exe完成,然后才能运行IISRESET。有没有办法在批处理脚本中做到这一点?或者,我可以在adplus命令行上指定在收集内存转储之前不返回内存吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-30 15:46:05

关于问题的第二部分,答案是肯定的:您可以(1)指定命令行上的等待(只要您可以访问和修改它);以及(2)在批处理文件中等待进程完成。

在它们最简单的形式中,执行

(1)使用START /WAIT cdb parms而不只是cdb parms

(2)尝试使用FOR /F "tokens=1,2" %a in ('TASKLIST ^| FIND /I "cdb.exe"') DO @ECHO %a %b并用ECHO替换您想要的命令。

票数 2
EN

Stack Overflow用户

发布于 2009-12-28 03:55:13

要创建web应用程序的内存转储,Microsoft Debug Diagnostic Tools是您的最佳选择。

您可以创建"IIS挂起“规则,监视特定的URL,并在指定秒数内未收到响应时创建内存转储。

Debug Diagnostics工具不会帮助您重新启动IIS (或您的应用程序池),但通常情况下,内置的应用程序池重新启动选项应该足以做到这一点。如果您确保为您的AppPool设置了“启用Pinging”(在其健康选项卡上),并且您还适当地设置了其他健康/回收参数,则无论发生什么情况,您的应用程序都应该继续响应。

如果没有,用你的"IIS Hang“DebugDiag规则中的崩溃转储来监视输出文件夹,并在出现新文件时重新启动IIS,这绝对可以做到这一点……

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

https://stackoverflow.com/questions/1966792

复制
相关文章

相似问题

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