应用程序:ASP.NET,C#
框架:4.6.2
身份验证模式:-Windows身份验证-允许。
平台:64位
伺服器:Win-2012
IIS:8.5
正在迁移到Azure平台。在测试阶段-自动化测试工具,发送快速请求。这些请求可能是类似虚假请求,恶意请求,页面不存在,具有插入的javascript的页面或具有错误参数的现有页面之类的东西。等等。基本上,该工具会尝试破坏/入侵您的应用程序。无论如何,一旦此工具开始测试,我们的应用程序池就会崩溃。有时它会运行一段时间,但不会持续很长时间。在测试过程中,当我们监视IIS工作进程时,该进程经常崩溃。
在手动浏览器测试中可以正常工作的地方。
我尝试了以下操作:
1.经过验证的CPU和内存使用情况,它们是正常的。
2.已验证的http日志:捕获的那些请求显示正确的错误代码。例如。未退出的页面显示500,很多请求显示未经授权的401.1,一些正确的请求也会显示200。
3.将应用程序设置为Windows身份验证允许模式。自动化测试工具使用一些有效的凭据。虽然我们看到很多请求都是未经授权的。
4.每次IIS崩溃时,都尝试使用不同的计算机和不同的用户凭据。
5.在DEV和UAT环境下,问题都是可以重现的。
6.能够拉出崩溃转储,但到目前为止无法读取/调试它。研究如何阅读它们。
7.应用程序正在将日志写入db。但这也不是昂贵的操作。这可能不是根本原因。由于有时有时第一个或第二个请求也会开始失败。
8.与通过此类测试的应用程序相比,我们的配置没有什么特别的。
9.尝试每秒更改请求。没有帮助。
10.验证的应用程序事件日志:它主要显示以下2个错误。
A)错误的应用程序名称:w3wp.exe,版本:8.5.9600.16384,时间戳:0x5215df96
故障模块名称:ntdll.dll,版本:6.3.9600.19153,时间戳:0x5b93ffa7
异常代码:0xc00000fd
故障偏移量:0x0000000000030461
进程ID错误:0x4d48
错误的应用程序路径:C:\ windows \ system32 \ inetsrv \ w3wp.exe
错误的模块路径:C:\ windows \ SYSTEM32 \ ntdll.dll
B)clr.dll出现同样的错误。
因此无法找到工作进程不断崩溃的确切原因。 IIS将允许连续5次回收,然后停止这样做,然后应用程序将保持不可用状态(503错误)。 赞赏所有可以找到根本原因的建议/提示。
答案 0 :(得分:0)
所以有两件事。
1.为什么应用程序池崩溃了?
查看事件日志,发现有溢出是干净的。
2.但是我不知道它在哪里。为此,我研究了崩溃转储。我找到了位置。然后我修好了。谢谢@Wiz,它已经进入了日志记录代码。