代码之家  ›  专栏  ›  技术社区  ›  fyjham

在iis7中调试已经运行的ASP.NET站点

  •  2
  • fyjham  · 技术社区  · 16 年前

    我们目前有一个实时的ASP.NET应用程序(基本上是一个CMS)在我们的iis7 Web服务器上运行。

    每隔一段时间(每隔几个月交谈一次),它的应用程序池将达到100%的CPU使用率,并一直保持到页面超时为止。我们已经尝试在web.config中将页面的超时时间增加到30分钟,但它仍然保持在满CPU状态,所以我假设它是某种形式的无限循环。

    它是一个巨大的应用程序,是我们拥有的最大的应用程序之一,而且太大了,无法盲目地搜索问题。普遍的观点是,由于它是如此罕见,我们可以重新启动应用程序池每当它发生,但我更愿意修复它。

    我可以访问代码和对托管服务器的完全管理员访问,并且我们运行的监控软件在问题发生时给了我足够的时间在服务器上,但我找不到任何方法来获取有关当时发生的事情的有用数据,而不必为站点增加大量的持续开销要花几个月的时间才行)。

    我想知道是否有人对我如何缩小搜索范围有什么建议?当前正在运行的线程的堆栈跟踪将是惊人的,但即使只是一个活跃的页面列表也会产生巨大的差异。我可以向项目中添加代码以使其更具可跟踪性,但是记录所有希望捕获它的内容是不现实的(它会获得大量的流量,我们不想给页面加载增加大量开销)。

    2 回复  |  直到 16 年前
        1
  •  3
  •   Phani Raj    16 年前

    Tess的博客是调试生产的ASP.NET应用程序的优秀资源。
    我认为她的博客中的这篇博客文章对于开始调试这个问题非常有帮助: Hang debugging walkthrough .
    希望这有帮助

        2
  •  0
  •   Ahmed    16 年前

    我建议您使用ASP.NET性能计数器(如请求队列和请求数)