0

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

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

  1. 停止目标网络服务器。
  2. 复制了整个webroot,包括umbraco文件夹,一个 App_Data的以及所有的资产,宏,模板等等。(为此,我实际上制作了一个 webroot 的 zip 文件并将其重新膨胀到目标 web 服务器上,但更标准的xcopy 部署将具有相同的效果。)
  3. 备份数据库(其中两个,在我的情况下,但只有一个是 Umbraco 的)并将其还原到目标数据服务器上的新数据库
  4. 重新启动目标网络服务器。

通常情况下,我的下一步是告诉 Umbraco 重新发布该站点,清除所有缓存,但是在尝试访问时http://mydomain.com/umbraco/,我得到一个黄屏死机错误读数:

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

堆栈跟踪

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 都存在了——尤其是因为我只是从工作环境中复制了它们。

那么给了什么?

4

2 回答 2

0

我必须同意该解决方案并不总是有效。我们在尝试使用最新的 Umbraco 4.11.1 构建部署 Courier(构建 26)时遇到相同的“数据库持久性”错误,并且从 umbraco Courier 仪表板单击“部署”会带来相同的错误。回收该站点的应用程序池没有帮助。

也作为 umbraco.org 的帮助票张贴,如果我得到解决方案将张贴在这里。

于 2012-12-13T22:05:44.527 回答
0

上周在这件事上浪费了很多时间,我突然想到要在下次发生时实际记录下如何解决它。

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

我希望这可以使其他人免于前一天晚上下班后我感觉良好的挫败感。

于 2012-09-11T18:08:23.407 回答