Adding an event handler to a web.config gives error: configuration file is not well-formed XML

Adding an event handler to a web.config gives error: configuration file is not well-formed XML

根据 this blog post,我正在尝试将一个事件添加到我的 Sitecore web.config 文件中,并完全按照他所做的去做。这正是我在我的文件中的方式。

<events timingLevel="custom">
      ...
      <event name="item:added">
        <handler type="BenefitVault.Core.Helpers.SitecoreEvents, BenefitVault" method="OnItemAdded" patch:after="processor[@type='Sitecore.Data.Fields.ItemEventHandler, Sitecore.Kernel']" />
      </event>
      ...
</events>

但是,当我尝试访问我的本地站点时,出现以下错误。看起来像是语法错误,但我没有看到问题所在。有什么想法吗?

如果您直接将此条目添加到 web.config 中,那么您不需要补丁声明,只需添加它而不添加,例如:

<events timingLevel="custom">
      ...
      <event name="item:added">
        <handler type="BenefitVault.Core.Helpers.SitecoreEvents, BenefitVault" method="OnItemAdded" />
      </event>
      ...
</events>

但是你应该避免直接更改配置部分,这会阻碍你升级,意味着你必须尝试找出所做的更改。相反,您应该使用 patch include file,这是您链接到的原始文章所指的内容(以及直接修改时失败的原因)

/App_Config/Include 文件夹下创建一个新的配置文件,(可选择在 /App_Config/Include/zProjectName 下创建它以真正 ensure it gets patched in last

/App_Config/Include/zMyProject/EventHandlers.config

<?xml version="1.0"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <events timingLevel="custom">
      <event name="item:added">
        <handler type="BenefitVault.Core.Helpers.SitecoreEvents, BenefitVault" method="OnItemAdded" 
                 patch:after="processor[@type='Sitecore.Data.Fields.ItemEventHandler, Sitecore.Kernel']" />
      </event>
    </events>
  </sitecore>
</configuration>