【问题标题】:Active directory queries intermittently take 40 minutes to completeActive Directory 查询间歇性地需要 40 分钟才能完成
【发布时间】:2009-09-18 08:12:27
【问题描述】:

将我们的 ASP.NET 站点从 32 位 Windows Server 2003/IIS6 移至 64 位 Windows Server 2008/IIS7(经典模式)后,某些 Active Directory 操作会间歇性地出现巨大延迟。

具体来说,DirectorySearcher.FindOne() 和 DirectoryEntries.Children.Add() 有时最多需要 40 分钟才能完成。这些问题似乎是由应用程序池在一段时间不活动后回收触发的,并且在网站使用一段时间后就会消失。

站点经历了这些活动目录操作适用于所有用户的阶段,然后对所有用户都失败 - 即问题不是特定于客户端的,而是服务器问题。

【问题讨论】:

  • 在设置表单身份验证后,您是否基于会话超时?

标签: asp.net iis-7 active-directory windows-server-2008


【解决方案1】:

请为您正在使用的应用程序池设置 ASP.NET 2.0 经典模式或创建新模式并应用它,我们遇到了类似的问题,因为 IIS 7 具有用于请求处理的新流水线模式,这是相当新的,但仍然不清楚它将如何影响使用内部会话变量和其他一些自定义模块的现有 Web 应用程序。

IIS 7 的新流水线应用程序池确实存在自定义模块问题,我们不得不将其关闭,直到找到更多信息。

流水线架构似乎只适用于绝对无状态页面,不使用会话和应用程序变量。

编辑: 另一个问题可能是 IIS 7 具有不同的超时值,因为它们需要在不同的标记中指定,在 web.config 中,您将看到仅特定于 IIS 7 的新 system.webserver 标记。尝试探索它们。

不幸的是,当前的 MSDN 没有列出其中任何一个,我们也遇到了连接超时问题,该问题仅设置为 120 秒,但我们了解到,当用户长时间上传时,会话中断,因为对于更大的文件,超时会更快到达。

【讨论】:

  • 谢谢,但我应该提到我们已经在经典模式下运行,抱歉。
  • 另一个问题可能是 IIS 7 有不同的超时值,因为它们需要在不同的标签中指定,在 web.config 中你会看到新的 system.webserver 标签,它只特定于 IIS 7。尝试探索他们。
  • 很遗憾,事件日志中没有任何内容。我不确定超时是否可能是罪魁祸首,因为当它起作用时,用户会在几秒钟内登录,但当它失败时,需要几分钟才能放弃。但我会花更多时间研究各种新设置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-02
  • 1970-01-01
  • 1970-01-01
  • 2020-11-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多