Привет! У меня есть получатель событий, предназначенный для веб-приложений.
В среде разработки я развертываю и могу подключиться только к определенному списку, он будет запускаться только из этого конкретного списка.
Однако при развертывании в производство его удается прикрепить к списку (проверьте из 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>
Кто-нибудь сталкивался с такой проблемой?или любой совет, как решить эту проблему?
Спасибо