Disable Web-scoped features on Web deletion
-
16-10-2019 - |
Question
I have a SPWeb ( http://example.com/site ), created used a custom web template, with several features activated on its scope.
When I delete the SPWeb it would be desirable that all the features activated at http://example.com/site would be deactivated (therefore running the FeatureDeactivating events on all features at that scope).
Some quick testing showed that sharepoint does not deactivate those features automatically.
How can I achieve this behavior programmatically?
Solution
Trap the WebDeleting method using a WebEventReceiver. Iterate over your activated features at that scope, then deactivate them.
Read more in MSDN: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spwebeventreceiver.webdeleting(v=office.12).aspx (Note there's a version of that page for 2010 too).