小编Joã*_*eto的帖子

用于发布的事件处理程序:结束事件只是命中第一个选定的语言.任何的想法?

我为publish:end事件创建了一个事件处理程序,以便每次Sitecore完成发布站点时,为Sitecore实例中的每种语言创建一个Sitemap XML文件.

如在发布中选择要发布的语言:end event:

[...]实际上,每个语言的发布:结束事件都会命中一次 - 然后通过执行EventArgs [0] .Options.Language获得正在发布的语言.

问题是发布:结束事件只是命中我的事件处理程序一次,而只是第一个选定的语言.如果我在发布Sitecore实例期间选择3种语言(En-US,Pt-BR,Fr-CA),例如,发布:end event将只触及我的事件处理程序一次,并显示En-US作为值财产EventArgs[0].Options.Language.它没有为其他2种选定的语言(Pt-BR,Fr-CA)命中我的事件处理程序.

我正在使用Sitecore.NET 8.0(rev.150812).

下面是我的事件处理程序配置文件:

<?xml version="1.0"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
    <sitecore>
        <events>
            <event name="publish:end">
                <handler type="Project1.EventHandlers.BuildXMLSitemap, Project1.SBL" method="BuildSitemap" />
            </event>
      <event name="publish:end:remote">
        <handler type="Project1.EventHandlers.BuildXMLSitemap, Project1.SBL" method="BuildSitemap" />
      </event>
    </events>

    <!-- Update settings for the Trusted_Connection = True -->
    <sites>

      <site name="website">
        <patch:attribute name="sitemapXmlFileName">sitemap</patch:attribute>
        <patch:attribute name="sitemapXmlIndexFileName">sitemapindex</patch:attribute>
      </site>

    </sites>
    </sitecore>
</configuration>
Run Code Online (Sandbox Code Playgroud)

以下是我的代码:

namespace Project1.EventHandlers
{
    public class BuildXMLSitemap
    {

        public void …
Run Code Online (Sandbox Code Playgroud)

sitecore sitecore-mvc sitecore8

4
推荐指数
1
解决办法
1516
查看次数

标签 统计

sitecore ×1

sitecore-mvc ×1

sitecore8 ×1