【发布时间】:2008-12-30 19:58:13
【问题描述】:
我正在开发一个 POS 应用程序,它在每台 POS 计算机上都有一个本地数据库,并使用 IIS 中托管的 WCF 与服务器通信。该应用程序已在多个客户中部署了一年多。
大约一周前,我们开始收到一位客户的报告,称托管 IIS 的服务器速度非常慢。当我检查问题时,我看到应用程序池和我的进程在 8 cpu 服务器上几乎达到 100% cpu。
我检查了 SQL 活动监视器和网络容量,它们没有显示超出我们通常看到的明显过载。
在 Process Explorer 中检查线程时,我看到很多线程重复调用 CreateApplicationContext。我已经尝试安装.Net 2.0 SP1,根据我在网上找到的一些帖子,但它没有解决问题并用CLRCreateManagedInstance替换了函数调用。
我将使用 IIS 进程的 adplus 和 windbg 捕获转储并尝试找出问题所在。
有没有人遇到过这样的事情或者知道我应该检查哪个目录?
附言相同版本的应用程序部署在另一个客户中,并且运行良好。我还尝试回滚版本(甚至是非常旧的版本),它的行为仍然完全相同。
编辑:好吧,问题解决了,原来我在那里有一个 SQL 查询,它没有限制结果集,当客户检查了一定数量的行时,它开始让服务器陷入困境。我花了两天时间才找到它,因为日志中的所有周围噪音,但我等了一夜然后转储,它立即向我显示了查询。
【问题讨论】: