将我们的ASP.NET站点从32位Windows Server 2003 / IIS6移动到64位Windows Server 2008 / IIS7(经典模式)后,某些活动目录操作会间歇性地出现大量延迟。
具体而言,DirectorySearcher.FindOne()和DirectoryEntries.Children.Add()有时最多需要40分钟才能完成。这些问题似乎是由应用程序池在一段时间不活动后重复使用而触发的,并且一旦该网站被使用了一段时间就会消失。
该站点经历了这些活动目录操作适用于所有用户的阶段,然后是所有用户失败的地方 - 即问题不是特定于客户端的,这是服务器问题。
答案 0 :(得分:0)
请为您正在使用的应用程序池设置ASP.NET 2.0经典模式或创建新的模式并应用它,我们遇到类似的问题,因为IIS 7有新的流水线模式用于请求处理,这是一个非常新的但仍然没有清晰它将如何影响使用内部会话变量和其他一些自定义模块的现有Web应用程序。
IIS 7新的Pipelined应用程序池确实存在自定义模块的问题,我们不得不关闭它,直到找到更多信息。
流水线架构似乎只适用于绝对无状态页面,它不使用会话和应用程序变量。
EDITED: 另一个问题可能是IIS 7具有不同的超时值,因为它们需要在不同的标记中指定,在web.config中,您将看到仅适用于IIS 7的新system.webserver标记。尝试探索它们。
不幸的是,目前的MSDN没有列出任何一个,我们也有连接超时问题,只设置了120秒,但我们知道当用户长时间上传时,会话中断,因为更长的文件会超时。