安装带有App_数据虚拟目录的Forms 6.0.1后,Umbraco 7.6.3后端速度较慢

安装带有App_数据虚拟目录的Forms 6.0.1后,Umbraco 7.6.3后端速度较慢,forms,umbraco,Forms,Umbraco,我们注意到,在Umbraco 7.6.3上安装Forms 6.0.1并使用虚拟目录存储App_数据后,CMS的运行速度非常慢。我们的一些客户拥有负载平衡的实时环境,并为App_数据、媒体等创建了虚拟目录。我们已将他们的网站从4.8.0版升级到7.6.3版。在安装表单并部署到演示环境后,我们注意到CMS需要花费很长时间才能完成任何工作。多年来,我们一直在使用虚拟目录存储各种版本的Umbraco上的App_数据,从未遇到过这种方法的任何问题 为了消除问题不是由于升级中的任何原因造成的,我们可以按照以

我们注意到,在Umbraco 7.6.3上安装Forms 6.0.1并使用虚拟目录存储App_数据后,CMS的运行速度非常慢。我们的一些客户拥有负载平衡的实时环境,并为App_数据、媒体等创建了虚拟目录。我们已将他们的网站从4.8.0版升级到7.6.3版。在安装表单并部署到演示环境后,我们注意到CMS需要花费很长时间才能完成任何工作。多年来,我们一直在使用虚拟目录存储各种版本的Umbraco上的App_数据,从未遇到过这种方法的任何问题

为了消除问题不是由于升级中的任何原因造成的,我们可以按照以下步骤重新创建问题:

  • 在本地开发人员计算机上安装了新的(干净版本)Umbraco 7.6.3
  • 使用IIS(而不是IIS express)设置localhost以访问站点
  • 在IIS中为App_数据创建了一个虚拟目录,指向解决方案的web根目录之外的文件夹
  • 此时,CMS中的页面加载时间平均约为750ms
  • 通过后台安装的表单
  • 一旦安装表单,CMS中的页面加载时间将显著增加,平均增加21秒
  • 如果我们从IIS中删除虚拟目录或在web.config中设置fcnmode=“disabled”,CMS将再次运行。据我所知,将fcnmode设置为disabled将停止文件更改NotiAction,但其缺点是应用程序池不会被回收。这可能是我们必须面对的问题,但我很好奇,到底是什么形式在引擎盖下造成了这种情况?表单以前添加到App_插件文件夹,而不是App_数据,这有什么原因吗

    Umbraco日志文件大小显著增加,并包含以下内容:

    2017-06-27 09:37:12,192 [P23168/D99/T80] INFO Umbraco.Core.UmbracoApplicationBase - Application shutdown. Details: ConfigurationChange
    
    _shutDownMessage=CONFIG change
    HostingEnvironment initiated shutdown
    CONFIG change
    CONFIG change
    CONFIG change
    CONFIG change
    CONFIG change
    CONFIG change
    CONFIG change
    CONFIG change
    CONFIG change
    CONFIG change
    CONFIG change
    CONFIG change
    CONFIG change
    CONFIG change
    CONFIG change
    CONFIG change
    CONFIG change
    CONFIG change
    HostingEnvironment caused shutdown
    
    _shutDownStack= at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
    at System.Environment.get_StackTrace()
    at System.Web.Hosting.HostingEnvironment.InitiateShutdownInternal()
    at System.Web.Hosting.HostingEnvironment.InitiateShutdownWithoutDemand()
    at System.Web.HttpRuntime.ShutdownAppDomain(String stackTrace)
    at System.Web.Configuration.HttpConfigurationSystem.OnConfigurationChanged(Object sender, InternalConfigEventArgs e)
    at System.Configuration.Internal.InternalConfigRoot.OnConfigChanged(InternalConfigEventArgs e)
    at System.Configuration.BaseConfigurationRecord.OnStreamChanged(String streamname)
    at System.Web.DirectoryMonitor.FireNotifications()
    at System.Web.Util.WorkItem.CallCallbackWithAssert(WorkItemCallback callback)
    at System.Web.Util.WorkItem.OnQueueUserWorkItemCompletion(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    

    我认为问题在于该文件是从物理路径而不是虚拟路径读取的。 \应用程序\u数据\TEMP\formsupdate

    如果在物理位置和虚拟位置都包含此文件,则应该可以解决此问题


    我在这里报告了这个问题:

    不确定它是否有任何影响,但是在您的开发机器上,在web.config中,您是否启用了调试?没有调试设置为false。Forms 6.0.2三天前刚刚发布。可能在6.0.1中捕获了一个与您的问题相关的问题。也许值得一试安装-我会将此发布在Umbraco问题跟踪器上()