嗨,我有一个事件接收器,是范围的网页。
在开发环境中,我部署并设法只附加到特定的列表,它只会从这个特定的列表中触发。
但是,当我部署到生产部门时,它设法附加到列表(从PowerShell检查,没有重复),但是它也附加到站点(我的假设),它将触发从任何列表。
我已经部署了两次相同的wsp,其中一次是范围到站点,之后我将其更改为scope到web并重新部署。
现在产生了生产环境:
预期结果:
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>有人遇到过这样的问题吗?或者对如何解决这个问题有什么建议吗?
谢谢
发布于 2018-05-22 01:21:55
如果要限制事件接收器附加到特定列表,请使用ListUrl指定列表。
例如:
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Receivers ListUrl="/Lists/customlist">并确保在正确事件接收器( 一个线程供您参考 )中更新列表项时禁用事件触发。
https://stackoverflow.com/questions/50441656
复制相似问题