gpt4 book ai didi

c# - 在扩展 Web 应用程序上使用 SPListEventReceiver

转载 作者:太空宇宙 更新时间:2023-11-03 17:02:33 24 4
gpt4 key购买 nike

我有一个站点使用用于管理员(后端)的 Windows 窗体身份验证。该站点有一个使用 FBA 的 Web 扩展站点,是普通用户(前端)可以访问的站点。

为了完成一些实现,我创建了一个自定义 SPListEventReceiver 并将其附加到主要网站的一个特定列表。

因此,当我对项目进行更改时,将抛出自定义处理程序,并且监听事件的单例会使用来自 SharePoint 列表的更新信息更新单例元素。问题:没有通知扩展站点,因此驻留在扩展站点上下文中的单例不会收到有关 SharePoint 列表更改的通知。

我必须如何注册 SPListEventReceiver 才能在扩展站点上接收项目更改通知?

类代码

    public class CampagnasListItemEventReceiver : SPItemEventReceiver
{
/// <summary>
/// An item was added.
/// </summary>
public override void ItemAdded(SPItemEventProperties properties)
{
base.ItemAdded(properties);
// DoSomething

}
}

一个Elements.xml

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Receivers >
<Receiver>
<Name>CampagnasListEventReceiverListAdded</Name>
<Type>ListAdded</Type>
<Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
<Class>{Class Namespace}</Class>
<SequenceNumber>10000</SequenceNumber>
</Receiver>
</Receivers>
</Elements>

有什么帮助吗?提前致谢。

更新:我正在使用单例模式将列表管理到 C# 单例类中,该类使用 SharePoint 列表信息 poblated,因此在更新 SharePoint 列表时我需要更新该 c# 列表,它在主站点(后端)上工作) 但前端没有收到通知。

最佳答案

@rolivares - 我对你的问题的理解是你有一个内存列表,当有人在你的管理站点上添加一个项目时你想要更新它。您已经使用单例对象实现了它。但是,当事件接收器在管理站点上触发时,该列表不会在您的扩展站点(前端)上更新。

虽然这 2 个“站点”指向相同的内容数据库,但 IIS 将它们作为单独的应用程序运行,因此您将有 2 个不同的内存列表实例。这就是为什么您的前端没有更新的原因。

关于c# - 在扩展 Web 应用程序上使用 SPListEventReceiver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19936357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com