我正在通过stsadm工具停用某项功能。我为此操作启用了事件接收器。如果我从站点手动停用该功能,则会触发事件,但在运行stsadm命令时则不会。
请帮忙......
以下是代码Sylvain:
public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
Logging.Log(_componentName, "The document library feature has deactivated successfully.");
}
答案 0 :(得分:2)
在事件接收器的代码中,您使用SPContext.Current(或其他Web上下文对象)......? 如果是这样,您的代码在网站上工作,但不在Web上下文(如stsadm或命令行)之外,因为SPContext.Current为null。
检查这一点,但很有可能是问题所在。
答案 1 :(得分:0)
正如Sylvain Reverdy指出的那样,你的功能接收器更难以失败,而不是被称为。查看SharePoint日志 - 跟踪所有功能激活/停用/安装步骤(位置 - c:\ Program Files \ Common Files \ Microsoft Shared \ web服务器扩展\ 14 \ LOGS,请参阅Where is the default log location for SharePoint/MOSS?)。
确保您没有使用StsAdm命令的“-force”选项 - 它使stsadm在停用期间忽略失败。