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 オブジェクト) を使用していますか? その場合、コードはサイトで機能しますが、SPContext.Current が null であるため、Web コンテキスト (stsadm やコマンド ラインなど) の外では機能しません。

この点を確認してください。ただし、それが問題である可能性は十分にあります。

于 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 に答える