从事件查看器中发现,IIS不定期崩溃并重启的现象。抓取crash dump文件后,发现能够看到异常,但没有堆栈信息(主要是只会看托管代码的堆栈,非托管的不清楚。),问题表现及dump日志的截图如下:
从dump文件的异常信息分析看,System.AccessViolationException,尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
根据微软的分析,当前应用或第三方系统与Windows系统的数据执行保护策略有冲突造成异常。
可以尝试禁用Windows的数据执行保护功能,操作步骤如下:
1、 以管理员身份启动cmd命令行窗口
2、 执行命令:bcdedit.exe /set nx AlwaysOff
记得在很久之前也遇到需要禁用“数据执行保护”的功能,什么原因倒是记不清了。