Sitecore 独角兽3同步';在未启用透明同步时将项目复制到磁盘

Sitecore 独角兽3同步';在未启用透明同步时将项目复制到磁盘,sitecore,sitecore-unicorn,Sitecore,Sitecore Unicorn,我有一个Sitecore 7.2解决方案,我已经在其中安装了Unicorn 3 我使用了提供的默认配置文件。在开发中,我在执行初始同步后启用了透明同步 <dataProviderConfiguration type="Unicorn.Data.DataProvider.DefaultUnicornDataProviderConfiguration, Unicorn" enableTransparentSync="true" /> 您可以看到内部异常正在尝试将项目保存到磁盘 在Ra

我有一个Sitecore 7.2解决方案,我已经在其中安装了Unicorn 3

我使用了提供的默认配置文件。在开发中,我在执行初始同步后启用了透明同步

<dataProviderConfiguration type="Unicorn.Data.DataProvider.DefaultUnicornDataProviderConfiguration, Unicorn" enableTransparentSync="true" /> 
您可以看到内部异常正在尝试将项目保存到磁盘 在Rainbow.Storage.SerializationFileSystemTree.WriteItem(IItemData项,字符串路径)中

更新

大家都知道,这个问题与我的CI环境有关,我在部署过程中遇到了这个错误

更新2

我已经读了这篇博文,显然我仍在理解一些东西

全文如下:

注意:启用透明同步之前,必须在透明同步关闭的情况下对配置执行初始序列化。否则,配置中的项目似乎会消失,因为透明同步显示磁盘上的所有零项

打开透明同步非常简单:将要添加透明同步的文件放入其中:

启用透明同步后,您只需更改磁盘上的项目,更新将立即显示在Sitecore中

读到这里,我假设如果你可以打开透明同步,那么你可以再次关闭它

在查看自述文件时,我假设要在其他环境中同步,在执行部署后,可以使用powershell向控制面板发出http查询

如果无法关闭透明同步,那么在我部署到CI环境时停止透明同步的最佳做法是什么?并使用powershell进行更新


目前我只希望透明同步在开发环境中工作

我想你误解了透明同步

它所做的是;它允许更新的YML立即反映在Sitecore中,而无需执行新的同步。它通过偷偷地将数据提供给Sitecore来实现这一点。这对于刚从GIT中提取数据或在分支之间切换非常有用,可以省去同步(或忘记同步)的麻烦

它没有做的是禁用Sitecore更改的自动同步。无论Unicorn被告知要控制内容树的哪个区域,这些文件都会一直写入磁盘

所以事实上,与你写的几乎相反;“这可能是我的误解,但我认为如果禁用了透明同步,那么在对Sitecore进行更改时,您必须转到unicorn控制面板手动同步所有修改。那么为什么在未启用透明同步的情况下,我会收到无法将更改写入磁盘的错误信息呢?”

参考:

<include database="core" path="/sitecore/system/Field types"/>
<include name="Core Settings" database="core" path="/sitecore/system/Settings" />
<include name="Core Start Menu" database="core" path="/sitecore/content/Documents and settings/All users"/>
<include name="Core Applications" database="core" path="/sitecore/content/Applications"/>
2016-03-22 15:38:15,996 [1] ERROR Sidewalk.SC.PackageInstaller.Client.Program [(null)] - System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.UnauthorizedAccessException: Access to the path 'D:\Websites\CI\Website\Unicorn\Default Configuration\Core Applications\Applications\Content Editor\Context Menues\Default\Bulk Export.yml' is denied.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.File.InternalDelete(String path, Boolean checkHost)
   at Rainbow.Storage.SerializationFileSystemTree.WriteItem(IItemData item, String path)
   at Rainbow.Storage.SerializationFileSystemTree.Save(IItemData item)
   at Unicorn.Data.DataProvider.UnicornDataProvider.SaveItem(ItemDefinition itemDefinition, ItemChanges changes, CallContext context)
   at Unicorn.Data.DataProvider.UnicornSqlServerDataProvider.SaveItem(ItemDefinition itemDefinition, ItemChanges changes, CallContext context)
   at Sitecore.Data.DataProviders.DataProvider.SaveItem(ItemDefinition item, ItemChanges changes, CallContext context, DataProviderCollection providers)
   at Sitecore.Data.DataSource.SaveItem(ID itemID, ItemChanges changes)
   at Sitecore.Data.Engines.EngineCommand`2.Execute()
   at Sitecore.Data.Engines.DataEngine.SaveItem(Item item)
   at Sitecore.Data.Managers.ItemProvider.SaveItem(Item item)
   at Sitecore.Data.Items.ItemEditing.AcceptChanges(Boolean updateStatistics, Boolean silent)
   at Sitecore.Install.Items.ItemInstaller.VersionInstaller.InstallVersion(Item version)
   at Sitecore.Install.Items.ItemInstaller.VersionInstaller.PasteVersion(XmlNode versionXml, Item target, VersionInstallMode mode, IProcessingContext context, Boolean removeOtherVersions)
   at Sitecore.Install.Items.ItemInstaller.InstallEntry(PackageEntry entry)
   at Sitecore.Install.Items.ItemInstaller.Flush()
   at Sitecore.Install.Framework.SinkDispatcher.Flush()
   at Sitecore.Install.Utils.EntrySorter.Flush()
   at Sitecore.Install.Framework.EntryBuilder.Flush()
   at Sitecore.Install.Zip.PackageReader.Populate(ISink`1 sink)
   at Sitecore.Install.Installer.InstallPackage(String path, Boolean registerInstallation, ISource`1 source, IProcessingContext context)
   at Sitecore.Install.Installer.InstallPackage(String path, ISource`1 source, IProcessingContext context)
   at Sidewalk.SC.PackageInstaller.Service.SitecorePackageInstaller.InstallPackage(String path)
   --- End of inner exception stack trace ---
System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.UnauthorizedAccessException: Access to the path 'D:\Websites\CI\Website\Unicorn\Default Configuration\Core Applications\Applications\Content Editor\Context Menues\Default\Bulk Export.yml' is denied.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.File.InternalDelete(String path, Boolean checkHost)
   at Rainbow.Storage.SerializationFileSystemTree.WriteItem(IItemData item, String path)
   at Rainbow.Storage.SerializationFileSystemTree.Save(IItemData item)
   at Unicorn.Data.DataProvider.UnicornDataProvider.SaveItem(ItemDefinition itemDefinition, ItemChanges changes, CallContext context)
   at Unicorn.Data.DataProvider.UnicornSqlServerDataProvider.SaveItem(ItemDefinition itemDefinition, ItemChanges changes, CallContext context)
   at Sitecore.Data.DataProviders.DataProvider.SaveItem(ItemDefinition item, ItemChanges changes, CallContext context, DataProviderCollection providers)
   at Sitecore.Data.DataSource.SaveItem(ID itemID, ItemChanges changes)
   at Sitecore.Data.Engines.EngineCommand`2.Execute()
   at Sitecore.Data.Engines.DataEngine.SaveItem(Item item)
   at Sitecore.Data.Managers.ItemProvider.SaveItem(Item item)
   at Sitecore.Data.Items.ItemEditing.AcceptChanges(Boolean updateStatistics, Boolean silent)
   at Sitecore.Install.Items.ItemInstaller.VersionInstaller.InstallVersion(Item version)
   at Sitecore.Install.Items.ItemInstaller.VersionInstaller.PasteVersion(XmlNode versionXml, Item target, VersionInstallMode mode, IProcessingContext context, Boolean removeOtherVersions)
   at Sitecore.Install.Items.ItemInstaller.InstallEntry(PackageEntry entry)
   at Sitecore.Install.Items.ItemInstaller.Flush()
   at Sitecore.Install.Framework.SinkDispatcher.Flush()
   at Sitecore.Install.Utils.EntrySorter.Flush()
   at Sitecore.Install.Framework.EntryBuilder.Flush()
   at Sitecore.Install.Zip.PackageReader.Populate(ISink`1 sink)
   at Sitecore.Install.Installer.InstallPackage(String path, Boolean registerInstallation, ISource`1 source, IProcessingContext context)
   at Sitecore.Install.Installer.InstallPackage(String path, ISource`1 source, IProcessingContext context)
   at Sidewalk.SC.PackageInstaller.Service.SitecorePackageInstaller.InstallPackage(String path)
   --- End of inner exception stack trace ---
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at Sidewalk.SC.PackageInstaller.Client.ServiceReference.SitecorePackageInstaller.InstallPackage(String path) in C:\Projects\PackageInstaller\Sidewalk.SC.PackageInstaller.Client\Web References\ServiceReference\Reference.cs:line 88
   at Sidewalk.SC.PackageInstaller.Client.Program.Main(String[] args) in C:\Projects\PackageInstaller\Sidewalk.SC.PackageInstaller.Client\Program.cs:line 281