Sharepoint站点需要一段时间才能在早上加载第一件事

问题描述:

我们的团队使用Sharepoint和一些自定义Web部件构建了一个站点。我们注意到,该网站在上午第一次访问该网站时需要一段时间才能加载。随后的访问没问题。我们怀疑Sharepoint重新列出了它的名单等。Sharepoint站点需要一段时间才能在早上加载第一件事

有没有其他人看过Sharepoint的这个问题?有没有人有建议的修复?

默认情况下,IIS应用程序将在夜间回收其工作进程。您可以在IIS管理器中关闭此功能,但更好的选择可能是将热身脚本添加到定时作业中。您可以在SharePoint中执行此操作,但更简单的做法可能是在Windows中添加计划任务以在回收完成后启动热身脚本。

一种“热身的SharePoint脚本”谷歌将产生几个结果,including this,这实际上也说明了:-)同样的情况

不,我猜想应用程序中的已编译组件已经从内存中卸载并且必须重新加载到缓存中。这也发生在我的ASP.NET Web应用程序中。我特别注意到QA站点几乎没有经常碰到,因此在访问它们时几乎总是从缓存中刷新。

您可以考虑增加您的站点的app pool在回收空闲工作进程之前等待的时间。

同意tvanfosson,它听起来很像你用aspnet应用程序获得的启动延迟。

一个快速而肮脏的修复可能是设置一个计划任务,将WebClient指向该站点,并在人们开始使用它之前每天早上将其启动。

我的猜测是,应用程序池的工作进程设定在一定的时间来回收每天晚上在IIS中,这导致在早上第一件事延迟。右键单击IIS - >属性 - >中的应用程序池,然后查看它在“以下时间回收工作进程:”的位置以查看自己。

您可以禁用此选项来修复您的问题,但我不建议这样做,因为每天晚上有工作进程的回收站将回收任何可能泄漏的内存。内存泄漏在SharePoint开发过程中尤其可能,因为您可能知道SharePoint对象模型中的许多对象在无人值守的内存中执行大部分工作。如果这些对象没有正确处理大量的内存,可能会占用.NET内存垃圾收集器上的内存压力,并延缓垃圾收集。

Best Practices: Using Disposable Windows SharePoint Services Objects

我同意建立一个计划任务加载该网站在早上来解决延迟问题的seanb的建议。只要确保在工作流程明显回收之后安排一段时间。

当然,比约恩强调了“问题”的主要原因。应用程序池在夜间得到回收。

但是,这应该需要30秒。

如果需要2或3分钟的时间,请考虑阅读this。如果你的服务器无法访问互联网,它主要解释它为什么如此缓慢。只要尝试从microsoft.com下载证书撤销列表,看看它是否有所作为。

如果您运行的是Windows Server 2008 R2,则现在有一个IIS 7.5 available for free的应用程序预热扩展。在撰写本文时,它处于测试阶段。

这会“热身”从IIS直接配置的应用程序池,也可以使用自定义初始化逻辑进行扩展。

应用程序预热扩展已不再可用,并将“重新调整为下一个版本的IIS”according to Microsoft

+0

这听起来很理想,但不幸的是它似乎被拉了。不过谢谢。 – 2011-11-15 08:30:27