每当IIS的应用程序池崩溃并重新启动时,我们如何创build一个日志? 我们必须通过asp.net来pipe理错误日志,或者IIS自己做这件事……问题是,该pipe理员可以看到IIS何时重新启动? 进一步哪个版本的IIS最适合这种工作。
一般来说,应用程序池不应该崩溃 – 所以你可能想要附加windows的debugging工具,如果有的话就得到崩溃转储 – 然后让更多的高级开发人员深入挖掘导致它的原因 – 崩溃转储将提供细节。
当应用程序池崩溃时,应该在windows事件查看器中创build一个通常为1009的条目。我会推荐IIS 6(仅仅因为我个人比IIS 7更了解它),但是我确定IIS7将会是一个更好的软件。
使用debugging诊断工具来生成和分析崩溃内存转储。
您可以使用ProcDump来执行此操作。 这是一个方便的命令行实用程序,您可以指向正在运行的实例并指定您希望在何种环境下生成转储文件。 一个这样的select是当进程终止时(具体地说,-t)这样做。
下载ProcDump: http ://technet.microsoft.com/en-us/sysinternals/dd996900.aspx
用法:procdump [-64] [[-c CPU使用率] [-u] [-s秒]] [-n超过] [-e [1]] [-h] [-m提交用法] [-ma] [-o] [-p计数器阈值] [-r] [-t] <[转储文件]] | [-x [arguments]>
-64默认情况下,在64位Windows上运行时,Procdump将捕获32位进程的32位转储。 此选项将覆盖创build一个64位转储。 -c用于创build进程转储的CPU阈值。 -e在进程遇到未处理的exception时写入转储。 如果进程有一个挂起的窗口,则写入转储(至less5秒钟不响应窗口消息)。 -m创build进程转储的内存提交阈值(以MB为单位)。 -ma用所有进程内存写入转储文件。 默认转储格式包括线程和句柄信息。 -n退出之前要写入的转储的数量。 -o覆盖现有的转储文件。 -p超出阈值时,在指定的性能计数器上触发。 -r反映(克隆)转储进程以最小化进程挂起的时间(仅限Windows 7和更高版本)。 -s在写入转储之前必须命中连续的秒钟CPU阈值(默认值为10)。 -t在进程终止时写入一个转储。 -u相对于单个内核来看待CPU使用率。 -x使用可选参数启动指定的映像。 使用-accepteula命令行选项自动接受Sysinternals许可协议。
要创build正在运行的进程的转储,请忽略CPU阈值。 如果您省略转储文件名称,则默认为.dmp。