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.

È stato utile?

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();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top