Esecuzione di PowerShell all'interno di una pagina di applicazione di SharePoint (C #)
-
16-10-2019 - |
Domanda
Ho una funzione che distribuisce una pagina di un'applicazione alla directory layout. Sto tentando di aggiornare il contenuto (o config?) Del database eseguendo un comando di PowerShell da C #.
Il seguente codice verrà eseguito bene e mi darà lo stato corrente del cruscotto sviluppatore (acceso, spento, ondemand).
PowerShell ps = PowerShell.Create();
ps.AddScript("Add-PsSnapin Microsoft.SharePoint.Powershell");
ps.AddScript("$svc=[Microsoft.SharePoint.Administration.SPWebService]::ContentService");
ps.AddScript("$ddsetting=$svc.DeveloperDashboardSettings");
ps.AddScript("$ddsetting.DisplayLevel");
System.Collections.ObjectModel.Collection<string> output = ps.Invoke<string>();
Sto tentando di aggiornare questa impostazione.
PowerShell ps = PowerShell.Create();
ps.AddScript("Add-PsSnapin Microsoft.SharePoint.Powershell");
ps.AddScript("$svc=[Microsoft.SharePoint.Administration.SPWebService]::ContentService");
ps.AddScript("$ddsetting=$svc.DeveloperDashboardSettings");
ps.AddScript(string.Format("$ddsetting.DisplayLevel=[Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::{0}", rblDashboard.SelectedValue));
ps.AddScript("$ddsetting.Update()");
ps.Invoke<string>();
posso eseguire il codice più che bene, ma l'impostazione non viene mai aggiornato. La linea string.format
valuta come mi aspetto. Questo valore viene modificato come dovrebbe.
Soluzione
Credo che ci sarà ok per eseguire PowerShell da SharePoint, ma perché vi non utilizzare codice gestito per questo? PowerShell è grande per lo scripting, ma la maggior parte dei comandi si possono trovare anche nel codice gestito.
Microsoft.SharePoint.Administration.SPDeveloperDashboardSettings classe può aiutare.
SPDeveloperDashboardSettings settings =
SPWebService.ContentService.DeveloperDashboardSettings;
settings.DisplayLevel = SPDeveloperDashboardLevel.On;
settings.TraceEnabled = true;
settings.Update();