Приемник событий (область видимости в Интернете) при развертывании прикрепляется к списку, но также прикрепляется к сайту. - PullRequest
0 голосов
/ 21 мая 2018

Привет! У меня есть получатель событий, предназначенный для веб-приложений.

В среде разработки я развертываю и могу подключиться только к определенному списку, он будет запускаться только из этого конкретного списка.

Однако при развертывании в производство его удается прикрепить к списку (проверьте из PowerShell, дубликатов нет), однако он также присоединится к сайту (мое предположение) и будет запускаться из любого списка.

Я дважды развернул один и тот же wsp, один раз - это область действия для сайта, после чего я изменил его на область действия для веб-узла и заново развернул.

Результат в производственной среде:

  • получатель события сработает из всего списка

  • в конкретном списке, который сработает дважды, я полагаю, потому что он (получатель события) подключен к этомуконкретный список и в то же время он прикреплен к сайту, следовательно, срабатывает дважды.(в ER нет обновлений, только отправка электронной почты)

ожидаемый результат:

  • только триггер в определенном списке и только триггеродин раз

Elements.XML:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Receivers ListUrl="/ISD/Lists/ICForm">
      <Receiver>
        <Name>Email_EventItemAdded</Name>
        <Type>ItemAdded</Type>
        <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
        <Class>IC___Event_Receiver.Email_Event.Email_Event</Class>
        <SequenceNumber>10000</SequenceNumber>
      </Receiver>
      <Receiver>
        <Name>Email_EventItemUpdated</Name>
        <Type>ItemUpdated</Type>
        <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
        <Class>IC__Event_Receiver.Email_Event.Email_Event</Class>
        <SequenceNumber>10000</SequenceNumber>
      </Receiver>
  </Receivers>
</Elements>

Манифест функции:

<Feature xmlns="http://schemas.microsoft.com/sharepoint/" Scope="Web" Title="IC - Event Receiver Feature" Id="aef9e351-e707-4848-927d-6f5d525aab1a">
  <ElementManifests>
    <ElementManifest Location="Email Event\Elements.xml" />
  </ElementManifests>
</Feature>

Package.Template.XML:

<?xml version="1.0" encoding="utf-8"?>
<Solution xmlns="http://schemas.microsoft.com/sharepoint/">
<Assemblies>
<Assembly Location="IC - Event Receiver.dll" DeploymentTarget="GlobalAssemblyCache">
<SafeControls>
<SafeControl Assembly="$SharePoint.Project.AssemblyFullName$"
Namespace="$SharePoint.Project.FileNameWithoutExtension$" TypeName="*" Safe="True"></SafeControl>
</SafeControls>
</Assembly>
</Assemblies>
</Solution>

Кто-нибудь сталкивался с такой проблемой?или любой совет, как решить эту проблему?

Спасибо

1 Ответ

0 голосов
/ 22 мая 2018

Если вы хотите ограничить присоединения получателя событий к определенному списку, используйте ListUrl для указания списка.

Например:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Receivers ListUrl="/Lists/customlist">

И убедитесь, что вы отключаете запуск событий, когда выобновить элемент списка в соответствующем приемнике событий, один поток для вашей справки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...