在Page_Load之后ASP.NET应用程序挂起 - 似乎是特定于工作进程的?

时间:2013-05-21 11:22:52

标签: c# asp.net iis-7

问题

我有一个连接到SQL Server数据库的ASP.NET Web应用程序。

有时,当某些特定的用户尝试登录时,应用程序会挂起。当我尝试从我的计算机上的实时站点上以该用户身份登录时,我可以复制此内容,但问题并非如此t出现在相同的站点中(相同的代码,相同的机器,相同的数据库和用户帐户 - 只有工作进程和应用程序池不同)。

问题也会在应用程序池回收中消失(至少暂时)。当它再次发生时,它往往是相同的用户。

通常我认为这是特定于应用程序的代码或数据库中的一个问题,我仍然在寻找一种可能的方法,但事实上它并不是在相同的站点中运行数据库让我怀疑。

更多信息

从某些日志记录中,挂起似乎发生在所请求页面的Page_Load之后,但在该页面上的用户控件的Page_Load之前。

挂起请求可以在IIS中站点的工作进程的当前请求中看到,状态显示为ExecuteRequestHandler,模块是IsapiModule。

SQL Server的活动监视器在应用程序挂起期间显示没有长时间运行的查询,探查器在挂起期间不会显示来自应用程序的频繁相同查询。

大多数用户可以毫无问题地继续使用该应用程序。

应用程序使用进程内ASP.NET会话状态存储用户详细信息。

在某些情况下,问题在10-20分钟后自行消失,有时它会一直存在,直到应用程序池回收为止。

有时,日志记录显示在请求页面的Page_Load后挂起约5分钟后,将调用第一个子用户控件的Page_Load,之后会有另一个挂起。

摘要

我基本上想知道是否有可能是因为ASP.NET会话锁定问题(会话中是否存在任何已知错误或死锁危险?)

请求的线程被分配了处理器时间的低优先级会不会有问题?

如果有人对这可能有什么想法我会感兴趣,如果没有,那么调试工作进程的内存转储可以帮助我吗?我没有任何经验或知道如何安全地进行实时,正在运行的工作进程的内存转储。

0 个答案:

没有答案