我有一个ASP.NET(Sitecore)应用程序,日志在我们客户的生产环境中显示间歇性的SQL连接错误.例外情况如下:
Exception: System.Data.SqlClient.SqlException
Message: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
Source: .Net SqlClient Data Provider
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, …
Run Code Online (Sandbox Code Playgroud) 我正在进行Sitecore 8.1安装.我正在尝试使用droptree字段来允许内容编辑者从项目树中选择一个项目(数据模板A).保证有效选择的每个项目具有不同数据模板的一个或多个子项目(数据模板B).根据文档,这应该很容易做到:只需将源设置为参数化数据源:
Datasource=/sitecore/Media Library/Images/Folder&IncludeTemplatesForDisplay=Data Template A
Run Code Online (Sandbox Code Playgroud)
或查询:
query:/sitecore/Media Library/Images/Folder/*[@@templatename='Data Template A']
Run Code Online (Sandbox Code Playgroud)
但是出于某种原因,该领域似乎忽略了除了路径之外的任何事情.它将显示树的正确部分,但显示所有项目(包括数据模板B的项目)并允许选择它们.我尝试过各种各样的排列[Exclude|Include]TemplatesFor[Selection|Display]
,其中没有一种被证明是有效的.我也试着从查询中使用不包括B [@@templatename!='Data Template B']
或这两种方法有templateid
.
除了偶尔模糊地提到droptree不尊重排除外,我还没有找到很多关于此的信息.常见的解决方案似乎是使用带有正则表达式验证的TreeList将其限制为一个选择.这种方法是足够的,但不是真的什么我宁愿:该UI的TreeList是单一选择,有点不可思议,我宁愿只是不允许用户选择在所有多个项目,而不是抛出一个验证错误时,他们做.
我可以使用其他几个字段来尊重排除但不提供树视图:再次,可维护但不是想法,因为这里可能有很多项目,树视图为用户提供了一些有用的上下文.
我可能会写一个模仿Droptree的新字段类型,但实际上是为了尊重排除 - 而且我很顽固,这可能是我采取的路线 - 但我想首先检查以确保我不仅仅是失踪一些东西.所以这就是问题:在我继续编写自己的问题之前,有人知道一种方法可以使Droptree荣获ExcludeTemplatesForSelection/Display或者通过查询过滤吗?
我有一个渲染组件,使用Lucene索引运行搜索以填充自己.
我们定义了两个索引; 硕士和网络.在体验编辑器中,它使用主索引和实际站点的Web索引.
我们已将Web索引策略配置为onPublishEndAsync
,并且我们已将主索引策略配置为syncMaster
,CMS用户可以添加/编辑为此组件提供支持的Sitecore项目,并在体验编辑器中立即查看它们.
但是,当我们更改Sitecore中的数据时,似乎没有更新主索引.体验编辑器仅在我手动运行索引重建后才显示数据.
<strategies hint="list:AddStrategy">
<strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/syncMaster" />
</strategies>
Run Code Online (Sandbox Code Playgroud)
为什么索引在数据更改时不会更新?
UPDATE
所以我将建议的文件与干净安装进行了比较,它们是相同的.
我应该补充一点,我没有使用标准sitecore_master_index
.我们有多个站点在sitecore的同一个实例上运行,因此我们添加了一个config include for websitename_master_index
.我已将<index>
节点内的配置与sitecore_master_index
in in Sitecore.ContentSearch.Lucene.Index.Master.config
进行了比较,唯一的区别是<root>
指向特定网站内容节点的爬虫元素,另外我们添加了一些自定义字段,但我认为这些字段不会导致问题我们可以手动重建索引吗?
我在看到showconfig.aspx
这个时发现的另一个有趣的事情是:
<agent type="Sitecore.ContentSearch.Tasks.Optimize" method="Run" interval="12:00:00" patch:source="Sitecore.ContentSearch.config">
<indexes hint="list">
<index>sitecore_master_index</index>
</indexes>
</agent>
Run Code Online (Sandbox Code Playgroud)
我不确定这是否有任何意义,但我们的定制没有匹配的条目websitename_master_index
?
UPDATE
我还将调试级别日志记录添加到了爬网程序
在crawling.log中我只看到以下内容:
14416 08:55:10 INFO [Index=website_master_index] Initializing SitecoreItemCrawler. DB:master / Root:/sitecore/Content/Website/Home
14416 08:55:10 INFO [Index=website_master_index] Initializing SynchronousStrategy.
Run Code Online (Sandbox Code Playgroud)
在编辑和保存项目时,日志中没有进一步提及索引,这实际上是sitecore_master_index
我们没有更改配置的标准吗?
我正在尝试在站点列表上添加站点名称,以便在publish:end:remote
事件中清除HTML缓存.
<event name="publish:end:remote">
<handler type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel" method="ClearCache">
<sites hint="list">
<site patch:after="*[@site]">mysite</site>
</sites>
</handler>
<handler type="Sitecore.Publishing.RenderingParametersCacheClearer, Sitecore.Kernel" method="ClearCache"/>
</event>
Run Code Online (Sandbox Code Playgroud)
但是它没有按预期工作.我做谷歌搜索,并没有找到任何关于如何在元素之前或之后进行修补的内容.大多数示例都在/属性等之前.
谢谢.
我正在处理多站点,我想打开上下文站点的体验编辑器,但 sitecore 无法解析上下文站点,它总是将我带到默认网站,sitecore.config 文件中有一个设置,我将其设置为“ true”,但它仍然带我到默认网站:
http://mywebsite.local/?sc_mode=edit&sc_site=网站
这是sitecore.config中的设置,我的sitecore版本是8.1(更新2)
<!-- PREVIEW - RESOLVE SITE
If false, the Preview.DefaultSite setting specifies the context site to use when a user previews an item.
If true, when a user previews an item, Sitecore tries to resolve the root item and the context site based on the current content language
and the path to the item. If Sitecore cannot resolve the context site, it uses the site that is specified in the Preview.DefaultSite setting.
Default value: …
Run Code Online (Sandbox Code Playgroud) 我已阅读 https://sitecore-community.github.io/docs/xDB/the-xdb-contact/和https://doc.sitecore.net/sitecore_experience_platform/81/setting_up__maintaining/xdb/contacts/contact_tracking.
我想知道Sitecore联系人跟踪是否适用于我的客户.
我创建了一个简单的新闻订阅功能(没有WFFM表单提交).一旦用户提交了他的信息以及个人信息和电子邮件,我就会发送一封确认电子邮件链接.确认电子邮件地址后,我正在通过代码创建联系人.感谢Brian!
我的应用程序会话状态模式是InProc
.
我的问题是,如果用户在订阅后通过新会话与网站进行交互(提交电子邮件后):
Sitecore会将用户识别为联系人(并合并现有的匿名联系人),还是每次都会创建新的匿名联系人?
我在我的解决方案中没有使用以下任何服务:
我正在为一个练习项目创建用户,并想出了三位作者,评论家,出版商.
作者 - 应该能够创建,编辑和删除项目.
审稿人 - 应该只能阅读和批准项目.
发布者 - 应该只能阅读所有项目并发布已批准的项目.
我在一篇文章中读到,这些角色足以满足内容作者--Sitecore客户端创作和Sitecore客户端用户,因此将其分配给作者.
以作者身份登录时,插入选项显示为灰色!!!! 所以,我登录的管理员再次,试图让访问主页项目(读,写等)的作者,但它说,访问被拒绝.
请为我澄清以下内容:
1.我想到的用户,他们是否正确或在真实情况下工作良好?
2.为什么我无法为作者提供访问Home项目的权限.
3.是否需要创建自定义角色.是否应该为这些用户提供每个项目通用的sitecore标准角色.
4.请建议我应该为我的作者,审稿人和出版商分配的角色
我读到sitecore 8.1具有运行仅CMS模式的选项(即没有xDB).
但是我没有在下面找到任何文档:
任何帮助都感激不尽.
我有一个启用了分析的多站点解决方案.当用户访问其中一个站点时,分析引擎似乎将用户重定向到其他站点.
我在这里读到,这可能是由于Analytics.HostName
包含用户被重定向到的站点的主机引起的.但是,此设置为空.
以下是请求和响应标头:
sitecore ×10
sitecore8.1 ×10
sitecore8 ×4
asp.net ×2
lucene ×1
lucene.net ×1
networking ×1
patch ×1
sitecore-xdb ×1
sql-server ×1