Disattivazione caratteristica raccolta siti in MySite
-
20-09-2019 - |
Domanda
Abbiamo una pagina master personalizzata che viene distribuito per l'applicazione web sitopersonale per queste istruzioni - http://www.sharepointblog.com/ 2008/07 / sp2007-custom-master-pagine-on-subsites.html
Tuttavia, si richiede la possibilità di disattivare la funzione su tutte le raccolte siti che si trovano all'interno del webapplication MySite. La caratteristica è costruito come un ambito di raccolta siti. Come faremmo disattivarli in un'applicazione che ha potenzialmente 3000 + MySites?
Soluzione
Vorrei costruire una semplice applicazione console che itera su tutte le raccolte siti (MySites) dell'applicazione Web e disattiva la funzione. Dovrete eseguire questo pezzo di codice con privilegi Elevate ( SPSecurity.RunWithElevatedPrivileges ) in modo da avere il permesso per disattivare una funzione di raccolta siti.
private static void DeleteWebsiteCollections()
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPWebApplication webApp = SPWebApplication.Lookup(new Uri("http://MySiteHostWebApp"));
SPSiteCollection mySites = webApp.Sites;
foreach (SPSite site in mySites)
{
site.Features.Remove(new Guid("place your feature id here"));
if (null != site)
{
site.Dispose();
}
}
});
}
Altri suggerimenti
Questo codice può essere cucito con punti metallici nella pagina master. Solo site.Features.Remove (new Guid ( "posizionare la vostra caratteristica id qui")); dovrebbe rimanere.