Condividi tramite


Eseguire il debug di soluzioni SharePoint

È possibile eseguire il debug di soluzioni SharePoint usando il debugger di Visual Studio. Quando si avvia il debug, Visual Studio distribuisce i file di progetto nel server SharePoint e quindi apre un'istanza del sito di SharePoint nel Web browser. Le sezioni seguenti illustrano come eseguire il debug di applicazioni SharePoint in Visual Studio.

Abilitare il debug

Quando si esegue il debug di una soluzione SharePoint per la prima volta in Visual Studio, una finestra di dialogo avvisa che il file web.config non è configurato per abilitare il debug. Il file web.config viene creato durante l'installazione del server SharePoint. Per altre informazioni, vedere Uso dei file Web.config. La finestra di dialogo consente di eseguire il progetto senza eseguire debug o 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">)

    Il file web.config risultante segue:

<?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 codice XML seguente nel file web.config:

  • Disattivare lo stack di chiamate (CallStack="false")

  • Abilitare gli errori personalizzati in Visual Studio (<customErrors mode="On" />)

  • Disabilitare il debug della compilazione (<compilation debug="false">)

Processo di debug e distribuzione F5

Quando si esegue il progetto di SharePoint in modalità di debug, il processo di distribuzione di SharePoint esegue le attività seguenti:

  1. Esegue i comandi di pre-distribuzione personalizzabili.

  2. Crea un file di pacchetto della soluzione Web (con estensione wsp) usando i comandi MSBuild. Il file con estensione wsp include tutti i file e le funzionalità necessari. Per altre informazioni, consultare Panoramica delle soluzioni.

  3. Se la soluzione SharePoint è una soluzione farm, ricicla il pool di applicazioni IIS per l'URL del sito specificato. Questo passaggio rilascia i file bloccati dal processo di lavoro IIS.

  4. Se esiste già una versione precedente del pacchetto, ritira la versione precedente delle funzionalità e dei file nel file con estensione wsp. Questo passaggio disattiva le funzionalità, disinstalla il pacchetto della soluzione e quindi elimina il pacchetto della soluzione nel server SharePoint.

  5. Installa la versione corrente delle funzionalità e dei file nel file con estensione wsp. Questo passaggio aggiunge e installa la soluzione nel server SharePoint.

  6. Per i flussi di lavoro, installa l'assembly del flusso di lavoro. È possibile modificarne la posizione usando la proprietà Percorso assembly.

  7. Attiva la funzionalità del progetto in SharePoint se l'ambito è Sito o Web. Le funzionalità negli ambiti Farm e WebApplication non vengono attivate.

  8. Per i flussi di lavoro, associa il flusso di lavoro alla raccolta, all'elenco o al sito di SharePoint selezionato nella Personalizzazione guidata SharePoint.

    Nota

    Questa associazione si verifica solo se è stato selezionato Associa automaticamente il flusso di lavoro nella procedura guidata.

  9. Esegue i comandi di post-distribuzione personalizzabili.

  10. Collega il debugger di Visual Studio al processo di Windows SharePoint Services (w3wp.exe). Se il tipo di progetto consente di modificare la proprietà Soluzione in modalità sandbox e il relativo valore è impostato su true, il debugger si collega a un processo diverso (SPUCWorkerProcess.exe). Per altre informazioni, vedere Considerazioni sulla soluzione in modalità sandbox.

  11. Avvia il debugger JavaScript se la soluzione SharePoint è una soluzione farm.

  12. Visualizza la raccolta, l'elenco o la pagina del sito appropriata nel Web browser.

    Visual Studio visualizza un messaggio di stato nella finestra Output dopo il completamento di ogni attività. Se non è possibile completare un'attività, Visual Studio visualizza un messaggio di errore nella finestra Elenco errori.

Funzionalità del progetto SharePoint

Una funzionalità è un'unità di funzionalità portabile e modulare che semplifica la modifica dei siti usando le definizioni del sito. È anche un pacchetto di elementi di Windows SharePoint Services (WSS) che possono essere attivati per un ambito specifico e che aiuta gli utenti a raggiungere un determinato obiettivo o 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. I nomi delle funzionalità hanno il nome del progetto di formato_Featurex, ad esempio TestProject_Feature1.

La cartella della soluzione nella directory delle funzionalità contiene un file di definizione delle funzionalità e un file di definizione del flusso di lavoro. Il file di definizione della funzionalità (Feature.xml) descrive i file nel file feature del progetto. Il file di definizione del progetto (Elements.xml) descrive il modello di progetto. Elements.xml è disponibile in Esplora soluzioni, ma Feature.xml viene generato quando viene creato il pacchetto della soluzione. Per altre informazioni su questi file, vedere Modelli di progetto e di elementi di progetto di SharePoint.

Flussi di lavoro di debug

Quando si esegue il debug dei progetti del flusso di lavoro, Visual Studio aggiunge il modello di flusso di lavoro (a seconda del tipo) a una libreria o a un elenco. È quindi possibile avviare il modello del flusso di lavoro manualmente o aggiungendo o aggiornando un elemento. È quindi possibile usare Visual Studio per eseguire il debug del flusso di lavoro.

Nota

Se si aggiungono riferimenti ad altri assembly, assicurarsi che tali assembly siano installati nella Global Assembly Cache (GAC). In caso contrario, la soluzione del flusso di lavoro avrà esito negativo. Per informazioni su come installare gli assembly, vedere Avviare manualmente un flusso di lavoro in un documento o un elemento.

Tuttavia, il processo di distribuzione non avvia il flusso di lavoro. È necessario avviare il flusso di lavoro dal sito Web di SharePoint. È anche possibile avviare il flusso di lavoro usando un'applicazione client, ad esempio Microsoft Office Word 2010, o usando codice lato server separato. Utilizzare uno degli approcci specificati nella Personalizzazione guidata SharePoint.

Ad esempio, se è stato specificato che il flusso di lavoro può essere avviato manualmente, avviare il flusso di lavoro direttamente dall'elemento nella raccolta o nell'elenco. Per altre informazioni su come avviare manualmente un flusso di lavoro, vedere Avviare manualmente un flusso di lavoro in un elemento di documento.

Debug dei ricevitori di eventi di funzionalità

Per impostazione predefinita, quando si esegue un'applicazione SharePoint di Visual Studio, le relative funzionalità vengono attivate automaticamente nel server SharePoint. Ciò causa tuttavia 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 rispetto al debugger. Ciò significa che alcune funzionalità di debug, ad esempio i punti di interruzione, non funzioneranno correttamente.

Per disabilitare l'attivazione automatica della funzionalità in SharePoint e consentire il debug corretto dei ricevitori di eventi di funzionalità, impostare il valore della proprietà Configurazione distribuzione attiva del progetto su Nessuna attivazione prima del debug. Dopo aver avviato il debug dell'applicazione SharePoint in Visual Studio, attivare manualmente la funzionalità in SharePoint. Per attivare la funzionalità, aprire il menu Azioni sito in SharePoint, scegliere Sito Impostazioni, scegliere il collegamento Gestisci funzionalità sito e quindi scegliere il pulsante Attiva accanto alla funzionalità per continuare il debug come di consueto.

Abilitare le informazioni di debug avanzate

A causa delle interazioni talvolta complesse tra il processo di Visual Studio (devenv.exe), il processo host di Visual Studio SharePoint (vssphost4.exe), SharePoint e il livello WCF, la diagnosi degli errori che si verificano durante la compilazione, la distribuzione e così via può essere una sfida. Per risolvere questi errori, è possibile abilitare informazioni di debug avanzate. A tale scopo, passare alla seguente chiave del Registro di sistema nel Registro di sistema di Windows:

HKEY_CURRENT_U edizione Standard R\Software\Microsoft\VisualStudio\11.0\SharePointTools

Se il valore di REG_DWORD "EnableDiagnostics" non esiste già, crearlo manualmente. Impostare il valore "EnableDiagnostics" su "1".

Se si imposta questo valore di chiave su 1, le informazioni di analisi dello stack vengono visualizzate nella finestra Output ogni volta che si verificano errori di sistema del progetto durante l'esecuzione in Visual Studio. Per disabilitare le informazioni di debug avanzate, impostare EnableDiagnostics di nuovo su 0 oppure eliminare il valore.

Per altre informazioni sulle altre chiavi del Registro di sistema di SharePoint, vedere Eseguire il debug delle estensioni per gli strumenti di SharePoint in Visual Studio.