0

我通過stsadm工具禁用功能。我爲此操作啓用了事件接收器。如果我從站點手動停用該功能,則會觸發事件,但不會在運行stsadm命令時觸發。通過命令行禁用功能不會觸發SPFeature事件接收器

請幫助...

下面是代碼維爾託德:

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

它使用powershell時執行嗎? – Shaneo 2011-05-05 13:07:21

+0

是的,我嘗試過使用powershell,結果相同... – Shankar 2011-05-05 13:12:38

回答

2

在你的事件接收器的代碼,你使用SPContext.Current(或其他網絡上下文對象).. 。? 如果是這樣,您的代碼在網站上工作,但不能超出web上下文(如stsadm或命令行),因爲SPContext.Current爲空。

檢查這一點,但這很有可能是問題所在。

+0

我們只使用了文件記錄功能,沒有使用任何SP功能 – Shankar 2011-05-06 05:07:58

0

正如Sylvain Reverdy指出的那樣,它更像是你的功能接收器失敗而不是被稱爲beeing。查看SharePoint日誌 - 所有功能激活/停用/安裝步驟都在那裏進行跟蹤(位置-c:\ Program Files \ Common Files \ Microsoft Shared \ web server extensions \ 14 \ LOGS,請參閱Where is the default log location for SharePoint/MOSS?)。

確保您沒有使用StsAdm命令的「-force」選項 - 它使stsadm在停用期間忽略失敗。

+0

我正在使用強制命令... stsadm -o deactivatefeature -filename folder/feature.xml -url http:// server-name/-force ...我會嘗試追蹤錯誤 – Shankar 2011-05-06 05:18:42