我有一个覆盖ItemAdded方法的事件处理程序。这在我的DEV环境中工作正常,但在我的LIVE环境中它不会触发。我想知道我的设置方式是否有问题。
这个类是这样声明的。
public class SitesEventHandler : SPItemEventReceiver {
public override void ItemAdded(SPItemEventProperties properties) {
//... code removed.
}
}
我添加了这样的事件处理程序:
SPList sites = web.Lists["Sites"];
sites.EventReceivers.Add(SPEventReceiverType.ItemAdded, "MossServices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6e99", "MossServices.SitesEventHandler");
我知道事件已被添加,但我想知道是否有一个我错过的步骤。
修改 我发现当我以管理员身份使用它时它运行正常,但与其他任何人一样。我必须承认我怀疑它可能是权限。有人能够告诉我它为什么适用于系统管理员而不是内容管理器?再一次,我应该做什么设置? 感谢
答案 0 :(得分:1)
程序集名称中的PublicKeyToken看起来不正确。它看起来太短了
答案 1 :(得分:1)
您是否使用功能注册事件处理程序? 你有没有激活这个功能?
或许您可以使用SharePoint Manager注册您的事件接收器
答案 2 :(得分:1)
这里的问题不在于事件处理程序/接收器的注册方式或类中的代码。这是权限问题。
真正帮助我的是查看Sharepoint写的日志: C:\ Program Files \ Common Files \ Microsoft Shared \ Web Server Extensions \ 12 \ LOGS
这个链接帮助我解决了我的特殊问题: http://sharenotes.wordpress.com/2008/03/18/cannot-open-log-for-source-you-may-not-have-write-access/
希望这有助于某人。这确实有一种肮脏黑客的感觉,但有时候完全废弃一个系统并重新做多年以前的肮脏黑客的选择不是一种选择。