我也将发布我的答案,但我昨晚在谷歌搜索时找不到这个,所以认为值得在这里列出,让其他人在晚上 9 点拉出头发。
我创建了一个已经存在于其他地方的站点的新Umbraco实例(我需要为安全测试制作快照,同时继续进行错误修复)。为此,我执行了以下操作:
- 停止目标网络服务器。
- 复制了整个webroot,包括
umbraco
文件夹,一个空App_Data
的以及所有的资产,宏,模板等等。(为此,我实际上制作了一个 webroot 的 zip 文件并将其重新膨胀到目标 web 服务器上,但更标准的xcopy 部署将具有相同的效果。) - 备份数据库(其中两个,在我的情况下,但只有一个是 Umbraco 的)并将其还原到目标数据服务器上的新数据库
- 重新启动目标网络服务器。
通常情况下,我的下一步是告诉 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 都存在了——尤其是因为我只是从工作环境中复制了它们。
那么给了什么?