在新设置的网站上,Umbraco和Courier发现“无法找到数据库持久性”错误

时间:2012-09-11 18:08:23

标签: nhibernate persistence umbraco stack-trace

我即将发布我的答案,但是昨晚谷歌搜索时我找不到这个,所以我觉得值得在这里列出其他人在晚上9点把头发拉出来。

我创建了一个已存在于其他地方的新Umbraco网站实例(我需要为安全测试制作快照,同时继续进行错误修正)。为此,我做了以下事情:

  1. 停止了目标网络服务器。
  2. 复制整个webroot,包括umbraco文件夹, App_Data以及所有资产,宏,模板等。 (为此,我实际上制作了webroot的zip文件并将其重新填充到目标网络服务器上,但更标准的xcopy deployment会产生相同的效果。)
  3. 备份数据库(其中两个,在我的情况下,但只有一个是Umbraco的)并将其恢复到目标数据服务器上的新数据库
  4. 重新启动目标网络服务器。
  5. 通常情况下,我的下一步是告诉Umbraco重新发布该网站,清除所有缓存,但在尝试访问http://mydomain.com/umbraco/时,我收到yellow screen of death错误信息:

      

    找不到数据库持久性,请确保您的/ bin中有一个有效的连接字符串和Umbraco.Courier.Persistence。* dll

    stack trace

    Umbraco.Courier.Core.PersistenceManager.GetPersistenceProvider(Guid id) +294
    Umbraco.Courier.ItemProviders.DocumentTypeItemProvider.HandlePack(ItemIdentifier id) in c:\Program Files (x86)\teamcity\buildAgent\work\872c402d3442319c\Core\Umbraco.Courier.Providers\ItemProviders\DocumentTypeItemProvider.cs:140
    Umbraco.Courier.Core.ItemProvider.Package(ItemIdentifier id) +88
    Umbraco.Courier.RepositoryProviders.Local.Package(ItemIdentifier itemId) in c:\Program Files (x86)\teamcity\buildAgent\work\872c402d3442319c\Contrib\Providers\Umbraco.Courier.RepositoryProviders\Local\Local.cs:227
    Umbraco.Courier.Cachehandler.V4.CacheHandler._sendToCache(ItemIdentifier itemId) in c:\Program Files (x86)\teamcity\buildAgent\work\872c402d3442319c\Contrib\Providers\Umbraco.Courier.CacheHandler.V4\Cachehandlers\CacheHandler.cs:211
    Umbraco.Courier.Cachehandler.V4.CacheHandler.DocumentType_AfterSave(DocumentType sender, SaveEventArgs e) in c:\Program Files (x86)\teamcity\buildAgent\work\872c402d3442319c\Contrib\Providers\Umbraco.Courier.CacheHandler.V4\Cachehandlers\CacheHandler.cs:133
    Vega.USiteBuilder.DocumentTypeManager.SynchronizeDocumentType(Type typeDocType, Type baseTypeDocType) +574
    Vega.USiteBuilder.DocumentTypeManager.SynchronizeDocumentTypes(Type baseTypeDocType) +146
    Vega.USiteBuilder.DocumentTypeManager.Synchronize() +56
    Vega.USiteBuilder.UmbracoManager.Synchronize() +120
    Vega.USiteBuilder.UmbracoManager.SynchronizeIfNotSynchronized() +85
    System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +270
    

    现在我知道Umbraco.Courier.Persistence.* DLL都存在 - 尤其是因为我只是从工作环境中复制它们。

    那是什么给了什么?

2 个答案:

答案 0 :(得分:0)

在上周浪费了大量时间在这上面几次,我突然想到如何在下次发生时修复它。

所需要的只是与应用程序池相关的回收。如果您不确定如何操作,请查看以下链接之一:

我希望这可以让其他人免受我在办公时间之后感觉很沮丧的困扰。

答案 1 :(得分:0)

我必须同意这个解决方案并不总是有效;我们拥有相同的数据库持久性"尝试使用最新的Umbraco 4.11.1版本部署Courier(build 26)时出错,然后单击" Deploy"来自umbraco Courier仪表板带来了同样的错误。回收此站点的应用程序池并没有帮助。

作为umbraco.org的帮助票据也发布,如果我得到解决方案,将在此处发布。