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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top