Sitecore - 没有应用程序池回收

时间:2013-10-11 08:51:55

标签: c# iis sitecore application-pool

我对Sitecore CMS有一个相当耗时的问题。

是否可以缩短每次在bin文件夹或web.config中进行更改时应用程序池回收所需的时间?

服务器需要2到5分钟才能在更改后立即响应。

有什么想法吗?

5 个答案:

答案 0 :(得分:4)

来自sitecore的alex shyba上有一篇文章Reducing Sitecore Startup time

文章摘要是

  • 在machine.config中:禁用进程以检查已签名的程序集
<runtime>  
    <generatePublisherEvidence enabled="false"/>
</runtime>
  • 在Sitecore web.config
  • 中禁用性能计数器
<setting name="Counters.Enabled" value="false" />

关于提高sitecore性能的文章很多我在下面列出了几个链接:

答案 1 :(得分:1)

他需要重新启动应用程序池才能加载新的dll 您可以尝试最小化您在启动时所做的事情(但我猜它主要是您无法影响的sitecore东西)所以我能给出的最佳建议是让2个网络服务器带有内容切换。
<登记/> 您将在2台服务器上运行您的应用程序,内容交换机决定哪个服务器处理哪个请求(请注意会话和静态,因为每个服务器都不会知道另一个)。
如果在某些时候您需要发布新版本,您只需指示您的内容交换机将所有流量指向Web服务器A.然后部署到Web服务器B,通过不通过内容交换机的直接URL打开网站并确保它工作正常+热身。
然后告诉内容交换机将所有流量指向B,并且您可以随时更新Web服务器A并将内容交换机切换回正常模式。

答案 2 :(得分:1)

我也有这个问题。

无论出于何种原因,我的本地副本大约需要5分钟才能在任何更改或新网站启动后完全启动。测试任何东西都是非常可怕的。这只是当地的一个问题。我的开发服务器环境和生产似乎没有受到影响。

我发现了一个分析工具,它允许我找到一个异常值控制器,它需要花费大量时间来渲染。试试这个......

  1. 编译后启动您的网站。
  2. 登录此管理页面:http://local.example.com/sitecore/admin/stats.aspx
  3. 您会看到如下屏幕:Sitecore Admin Page Content performance statistics查找平均时间偏高的平均值。你的问题很可能就在那里。
  4. 作为奖励,如果您可以在长时间重新编译之后继续点击页面而不会有太多麻烦,那么您应该注意到,如果您的问题与我的问题类似,那么每个页面的平均时间大约减半。
  5. 在我的情况下,我发现最大的问题来自一个对一个项目进行昂贵搜索的控件。 它看起来像这样 - &gt; Sitecore.Context.Database.SelectItems("" + Sitecore.Context.Item.Paths.Path + "/ancestor-or-self::*[@@templateid='" + templateId + "']"); 这主要是本地问题,因为SQL服务器远离我的机器,而其他服务器位于同一建筑物中。因此开发和生产相对不受影响。

    祝你好运!

答案 3 :(得分:0)

您可以关注Alex Shyba's post here

但是2-5分钟听起来很极端。这不正常。你的硬件是最新的吗? 我也会查看你的预取缓存。在您的开发环境中,您可能不希望我在启动时获取太多内容,因为在开发过程中不需要这样做。

我还会研究初始化管道和global.asax,看看你是否在做任何自定义启动工作。

答案 4 :(得分:0)

您可以减少核心,主数据库和Web数据库上的预取缓存大小,但不建议这样做,仅在开发计算机上执行此操作,而不是在生产服务器上执行此操作。