0

我正在通过 stsadm 工具停用一项功能。我为此操作启用了事件接收器。如果我从站点手动停用该功能,则会触发事件,但在运行 stsadm 命令时不会触发。

请帮忙...

这是西尔文的代码:

public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
    {
        Logging.Log(_componentName, "The document library feature has deactivated successfully.");
    }
4

2 回答 2

2

在您的事件接收器的代码中,您是否使用 SPContext.Current (或其他 Web-Context 对象)...?如果是这样,您的代码可以在站点上运行,但不能脱离网络上下文(如 stsadm 或命令行),因为 SPContext.Current 为空。

检查这一点,但很有可能就是问题所在。

于 2011-05-05T17:47:06.467 回答
0

正如 Sylvain Reverdy 指出的那样,您的功能接收器更可能失败,而不是没有被呼叫。查看 SharePoint 日志 - 在那里跟踪所有功能激活/停用/安装步骤(位置 - c:\Program Files\Common Files\Microsoft Shared\web server extensions\14\LOGS,请参阅SharePoint/MOSS 的默认日志位置在哪里? )。

确保您没有使用 StsAdm 命令的“-force”选项 - 它使 stsadm 在停用期间忽略故障。

于 2011-05-05T18:36:06.923 回答