Debug di soluzioni SharePoint
È possibile eseguire il debug di soluzioni SharePoint utilizzando il debugger di Visual Studio. Quando si inizia il debug, Visual Studio distribuisce i file di progetto al server SharePoint, quindi apre un'istanza del sito di SharePoint nel browser. Nelle sezioni seguenti viene illustrato come eseguire il debug delle applicazioni di SharePoint in Visual Studio.
Abilitazione del debug
Debug con F5 e processo di distribuzione
Funzionalità del progetto SharePoint
Debug di flussi di lavoro
Debug di ricevitori di eventi di funzionalità
Abilitazione delle informazioni di debug avanzate
Abilitazione del debug
Quando si esegue per la prima volta il debug di una soluzione SharePoint in Visual Studio, in una finestra di dialogo viene visualizzato un avviso in cui è specificato che il file web.config non è configurato per abilitare il debug. Tale file viene creato quando si installa il server SharePoint. Per ulteriori informazioni, vedere Utilizzo di file Web.config (la pagina potrebbe essere in inglese). La finestra di dialogo consente di scegliere se eseguire il progetto senza il debug o se modificare il file web.config per abilitare il debug. Se si sceglie la prima opzione, il progetto viene eseguito normalmente. Se si sceglie la seconda opzione, il file web.config viene configurato per:
Attivare lo stack di chiamate (CallStack="true")
Disabilitare gli errori personalizzati in Visual Studio(<customErrors mode="Off" />)
Abilitare il debug di compilazione (<compilation debug="true">)
Di seguito è riportato il file web.config risultante:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
...
<SharePoint>
<SafeMode MaxControls="200"
CallStack="true"
DirectFileDependencies="10"
TotalFileDependencies="50"
AllowPageLevelTrace="false">
...
</SafeMode>
...
</SharePoint>
<system.web>
...
<customErrors mode="Off" />
...
<compilation debug="true">
...
</compilation>
...
</system.web>
...
</configuration>
Per annullare le modifiche e disabilitare il debug, modificare il seguente codice XML nel file web.config:
Disattivare lo stack di chiamate (CallStack="false")
Abilitare gli errori personalizzati in Visual Studio(<customErrors mode="On" />)
Disabilitare il debug di compilazione (<compilation debug="false">)
Debug con F5 e processo di distribuzione
Quando si esegue il progetto SharePoint nella modalità di debug, il processo di distribuzione di SharePoint effettua le attività seguenti:
Esegue i comandi precedenti alla distribuzione personalizzabili.
Crea un file del pacchetto della soluzione Web (con estensione wsp) mediante i comandi MSBuild. Il file con estensione wsp include tutti i file e le funzionalità necessari. Per ulteriori informazioni, vedere Cenni preliminari sulle soluzioni (la pagina potrebbe essere in inglese).
Se la soluzione SharePoint è una soluzione della farm, ricicla il pool di applicazioni IIS per l'URL del sito specificato. Questo passaggio rilascia i file bloccati dal processo di lavoro IIS.
Se è già presente una versione precedente del pacchetto, ritrae la versione precedente dei file e delle funzionalità nel file con estensione wsp. Questo passaggio disattiva le funzionalità, disinstalla il pacchetto della soluzione, quindi lo elimina dal server SharePoint.
Installa la versione corrente dei file e delle funzionalità nel file con estensione wsp. Questo passaggio aggiunge e installa la soluzione nel server SharePoint.
Installa l'assembly per i flussi di lavoro. È possibile modificare il percorso tramite la proprietà Assembly Location.
Attiva la funzionalità del progetto in SharePoint se l'ambito è Sito o Web. Le funzionalità negli ambiti Farm e WebApplication non sono attivate.
Associa il flusso di lavoro alla libreria, all'elenco o al sito di SharePoint selezionati nella Personalizzazione guidata SharePoint.
Nota
Questa associazione si verifica solo se nella procedura guidata è stata selezionata l'opzione Associa flusso di lavoro automaticamente.
Esegue i comandi successivi alla distribuzione personalizzabili.
Collega il debugger di Visual Studio al processo di Windows SharePoint Services (w3wp.exe). Se il tipo di progetto consente di modificare la proprietà Sandboxed Solution e il valore viene impostato su true, il debugger viene connesso a un processo diverso (SPUCWorkerProcess.exe). Per ulteriori informazioni, vedere Considerazioni sulle soluzioni create mediante sandbox.
Avvia il debugger di JavaScript se la soluzione SharePoint è una soluzione della farm.
Visualizza la libreria, l'elenco o la pagina del sito appropriato nel browser.
Dopo il completamento di ogni attività, nella finestra di output di Visual Studio viene visualizzato un messaggio di stato. Se non è possibile completare un'attività, nella finestra Elenco errori di Visual Studio viene visualizzato un messaggio di errore.
Funzionalità del progetto SharePoint
Una funzionalità è un'unità di funzionalità modulare e portatile che semplifica la modifica dei siti attraverso le relative definizioni. Inoltre è un pacchetto di elementi di Windows SharePoint Services (WSS) che può essere attivato per un ambito specifico e che consente agli utenti di raggiungere un particolare obiettivo o effettuare una determinata attività. I modelli vengono distribuiti come funzionalità.
Quando si esegue un progetto in modalità di debug, il processo di distribuzione crea una cartella nella directory delle funzionalità in %COMMONPROGRAMFILES%\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES. Il formato dei nomi della funzionalità è nome progetto_Featurex, ad esempio TestProject_Feature1.
La cartella della soluzione nella directory delle caratteristiche contiene un file di definizione della caratteristica e un file di definizione del flusso di lavoro. Nel file di definizione della funzionalità (Feature.xml) vengono descritti i file contenuti nella funzionalità del progetto.Nel file di definizione del progetto (Elements.xml) viene descritto il modello di progetto. Elements.xml è disponibile in Esplora soluzioni, tuttavia Feature.xml viene generato durante la creazione del pacchetto della soluzione. Per ulteriori informazioni su questi file, vedere Modelli di progetto e di elementi di progetto SharePoint.
Debug di flussi di lavoro
Quando si esegue il debug di progetti flusso di lavoro, Visual Studio aggiunge il modello di flusso di lavoro (a seconda del tipo) a una libreria o a un elenco. Successivamente, il modello di flusso di lavoro può essere avviato manualmente oppure aggiungendo o aggiornando un elemento. Per eseguire il debug del flusso di lavoro è quindi possibile utilizzare Visual Studio.
Nota
Se si aggiungono riferimenti ad altri assembly, assicurarsi che tali assembly siano installati nella Global Assembly Cache (GAC). In caso contrario, si verificherà un errore nella soluzione flusso di lavoro. Per informazioni sull'installazione degli assembly, vedere Avviare manualmente un flusso di lavoro per un documento o un elemento.
Tuttavia, il flusso di lavoro non viene avviato dal processo di distribuzione, ma deve essere avviato dal sito Web di SharePoint. È anche possibile avviare il flusso di lavoro utilizzando un'applicazione client, ad esempio Microsoft Office Word 2007, oppure utilizzando codice separato sul lato server. Utilizzare uno degli approcci specificati in Personalizzazione guidata SharePoint.
Ad esempio, se si è specificato che il flusso di lavoro può essere avviato manualmente, avviarlo direttamente dall'elemento contenuto nella libreria o nell'elenco. Per ulteriori informazioni su come avviare un flusso di lavoro manualmente, vedere Manually start a workflow on a document item (informazioni in lingua inglese).
Debug di ricevitori di eventi di funzionalità
Per impostazione predefinita, quando si esegue un'applicazione di SharePoint di Visual Studio, le funzionalità vengono attivate automaticamente sul server SharePoint. Tuttavia, questa operazione causa dei problemi quando si esegue il debug dei ricevitori di eventi di funzionalità, perché quando una funzionalità viene attivata da Visual Studio, viene eseguita in un processo diverso dal debugger. Di conseguenza, alcune funzionalità di debug, ad esempio i punti di interruzione, non funzioneranno correttamente.
Per disabilitare l'attivazione automatica della funzionalità in SharePoint e consentire un debug corretto dei ricevitori di eventi di funzionalità, impostare il valore della proprietà Configurazione distribuzione attiva del progetto su Nessuna attivazione prima di eseguire il debug. Successivamente, dopo che l'applicazione di SharePoint di Visual Studio è in esecuzione, attivare manualmente la funzionalità in SharePoint. A tal fine, fare clic su Impostazioni sito nel menu Azioni sito di SharePoint, selezionare il collegamento Gestisci caratteristiche sito, quindi fare clic sul pulsante Attiva accanto alla funzionalità e riprendere normalmente il debug.
Abilitazione delle informazioni di debug avanzate
A causa delle interazioni a volte complesse tra il processo di Visual Studio (devenv.exe), il processo host di SharePoint di Visual Studio (vssphost4.exe), SharePoint e il livello WCF, la diagnosi degli errori che si verificano durante la compilazione, la distribuzione e altre operazioni può risultare difficile. Per risolvere tali errori, è possibile abilitare le informazioni di debug avanzate. A tal fine, individuare la seguente chiave del Registro di sistema di Windows:
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\SharePointTools]
Modificare il valore della chiave "EnableDiagnostics" da "0" a "1".
Con l'impostazione del valore di questa chiave su 1, si ottiene la visualizzazione delle informazioni sulla traccia dello stack nella finestra Output ogni volta che si verificano errori del sistema del progetto durante l'esecuzione in Visual Studio. Per disabilitare le informazioni di debug avanzate, impostare EnableDiagnostics di nuovo su 0.
Per ulteriori informazioni su altre chiavi del Registro di sistema di SharePoint, vedere Debug delle estensioni per gli strumenti di SharePoint in Visual Studio.