Debuggen von SharePoint-Lösungen
SharePoint-Lösungen können mithilfe des Visual Studio-Debuggers gedebuggt werden. Wenn Sie mit dem Debuggen beginnen, stellt Visual Studio die Projektdateien auf dem SharePoint-Server bereit und öffnet dann im Webbrowser eine Instanz der SharePoint-Website. In den folgenden Abschnitte wird erklärt, wie SharePoint-Anwendungen in Visual Studio gedebuggt werden.
Aktivieren des Debuggens
F5-Debugging und der Bereitstellungsprozess
SharePoint-Projektfunktionen
Debuggen von Workflows
Debuggen von Funktionsereignisempfängern
Aktivieren von erweiterten Debuginformationen
Aktivieren des Debuggens
Wenn Sie eine SharePoint-Lösung in Visual Studio erstmals debuggen, werden Sie in einem Dialogfeld darauf hingewiesen, dass die Datei web.config nicht zum Aktivieren des Debuggens konfiguriert ist. (Die Datei web.config wird erstellt, wenn Sie SharePoint-Server installieren. Weitere Informationen finden Sie unter Working with Web.config Files.) Das Dialogfeld bietet die Optionen, das Projekt entweder ohne Debugging auszuführen oder die Datei web.config so zu ändern, dass das Debuggen aktiviert wird. Wenn Sie die erste Option auswählen, wird das Projekt normal ausgeführt. Bei Auswahl der zweiten Option wird die Datei web.config für Folgendes konfiguriert:
Aktivieren der Aufrufliste (CallStack="true")
Deaktivieren von benutzerdefinierten Fehlern in Visual Studio (<customErrors mode="Off" />)
Aktivieren von Kompilierungsdebugging (<compilation debug="true">)
Die resultierende Datei web.config sieht wie folgt aus:
<?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>
Um die Änderungen zurückzusetzen und das Debuggen zu deaktivieren, ändern Sie das folgende XML in der Datei web.config:
Deaktivieren der Aufrufliste (CallStack="false")
Aktivieren von benutzerdefinierten Fehlern in Visual Studio (<customErrors mode="On" />)
Deaktivieren von Kompilierungsdebugging (<compilation debug="false">)
F5-Debugging und der Bereitstellungsprozess
Wenn Sie das SharePoint-Projekt im Debugmodus ausführen, werden im SharePoint-Bereitstellungsprozess die folgenden Aufgaben ausgeführt:
Die anpassbaren Befehle vor der Bereitstellung werden ausgeführt.
Es wird eine Weblösungspaketdatei (.wsp) mithilfe von MSBuild-Befehlen erstellt. Die WSP-Datei enthält alle erforderlichen Dateien und Funktionen. Weitere Informationen finden Sie unter Solutions Overview.
Wenn die SharePoint-Lösung eine Farmlösung ist, wird der IIS-Anwendungspool für die angegebene Website-URL wiederverwendet. In diesem Schritt werden vom IIS-Arbeitsprozess gesperrte Dateien freigegeben.
Wenn bereits eine frühere Version des Pakets vorhanden ist, wird die frühere Version der Funktionen und Dateien in der WSP-Datei zurückgenommen. In diesem Schritt werden die Funktionen deaktiviert, das Lösungspaket deinstalliert und anschließend das Lösungspaket auf dem SharePoint-Server gelöscht.
Die aktuelle Version der Funktionen und Dateien in der WSP-Datei wird installiert. In diesem Schritt wird die Lösung auf dem SharePoint-Server hinzugefügt und installiert.
Für Workflows wird die Workflowassembly installiert. Sie können den Speicherort mit der Eigenschaft Assembly Location ändern.
Die Funktion des Projekts wird in SharePoint aktiviert, wenn der Gültigkeitsbereich Website oder Web ist. Funktionen in den Gültigkeitsbereichen Farm und WebApplication werden nicht aktiviert.
Bei Workflows wird der Workflow der SharePoint-Bibliothek, der Liste oder der Website zugeordnet, die im Assistenten zum Anpassen von SharePoint ausgewählt wurde.
Tipp
Diese Zuordnung tritt nur auf, wenn Sie im Assistenten Workflow automatisch zuordnen ausgewählt haben.
Die anpassbaren Befehle nach der Bereitstellung werden ausgeführt.
Der Visual Studio-Debugger wird an den Windows SharePoint Services-Prozess (w3wp.exe) angehängt. Wenn der Projekttyp das Ändern der Eigenschaft Sandboxed Solution zulässt und deren Wert auf true festgelegt ist, wird der Debugger an einen anderen Prozess (SPUCWorkerProcess.exe) angehängt. Weitere Informationen finden Sie unter Überlegungen zu Sandkastenlösungen.
Der JavaScript-Debugger wird gestartet, wenn die SharePoint-Lösung eine Farmlösung ist.
Die entsprechende Bibliothek, Liste oder Websiteseite wird im Webbrowser an.
Visual Studio zeigt nach der Ausführung der einzelnen Aufgaben eine Statusmeldung im Ausgabefenster an. Wenn eine Aufgabe nicht abgeschlossen werden kann, zeigt Visual Studio eine Fehlermeldung im Fenster Fehlerliste an.
SharePoint-Projektfunktionen
Bei einer Funktion handelt es sich um eine portable und modulare Funktionseinheit, die das Ändern von Websites mithilfe von Websitedefinitionen vereinfacht. Eine Funktion ist außerdem ein Paket aus WSS-Elementen (Windows SharePoint Services), das für einen bestimmten Gültigkeitsbereich aktiviert werden kann und Benutzer beim Erreichen eines bestimmten Ziels bzw. beim Ausführen einer Aufgabe unterstützt. Vorlagen werden als Funktionen bereitgestellt.
Beim Ausführen eines Projekts im Debugmodus wird im Bereitstellungsprozess ein Ordner im Verzeichnis feature unter %COMMONPROGRAMFILES%\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES erstellt. Funktionsnamen weisen das Format Projektname_Featurex auf, z. B. TestProject_Feature1.
Der Ordner der Projektmappe im Featureverzeichnis beinhaltet eine Datei für Featuredefinition und eine Datei für Workflowdefinition. Die Funktionsdefinitionsdatei (Feature.xml) beschreibt die Dateien in der Projektfunktion.In der Projektdefinitionsdatei (Elements.xml) wird die Projektvorlage beschrieben. "Elements.xml" befindet sich im Projektmappen-Explorer, "Feature.xml" wird jedoch beim Erstellen des Lösungspakets generiert. Weitere Informationen zu diesen Dateien finden Sie unter Vorlagen für SharePoint-Projekte und Projektelemente.
Debuggen von Workflows
Wenn Sie Workflowprojekte debuggen, fügt Visual Studio die Workflowvorlage (abhängig von deren Typ) einer Bibliothek oder einer Liste hinzu. Sie können dann die Workflowvorlage manuell oder durch Hinzufügen oder Aktualisieren eines Elements starten. Anschließend können Sie Visual Studio verwenden, um den Workflow zu debuggen.
Tipp
Wenn Sie anderen Assemblys Verweise hinzufügen, stellen Sie sicher, dass diese Assemblys im globalen Assemblycache (GAC) installiert werden. Andernfalls tritt bei der Workflowlösung ein Fehler auf. Weitere Informationen zum Installieren von Assemblys finden Sie im Thema zum manuellen Starten eines Workflows für ein Dokument oder Element (möglicherweise in englischer Sprache).
Der Workflow wird jedoch nicht vom Bereitstellungsprozess gestartet. Der Workflow muss von der SharePoint-Site gestartet werden. Der Workflow kann auch mithilfe einer Clientanwendung wie Microsoft Office Word 2007 oder mithilfe eines gesonderten serverseitigen Codes gestartet werden. Verwenden Sie einen der im Assistenten zum Anpassen von SharePoint angegebenen Ansätze.
Wenn Sie beispielsweise angegeben haben, dass der Workflow manuell gestartet werden kann, starten Sie den Workflow direkt vom Element in der Bibliothek oder der Liste. Weitere Informationen zum manuellen Starten eines Workflows finden Sie unter Manually start a workflow on a document item.
Debuggen von Funktionsereignisempfängern
Wenn Sie eine Visual Studio-SharePoint-Anwendung ausführen, werden deren Funktionen standardmäßig automatisch auf dem SharePoint-Server aktiviert. Dies verursacht jedoch Probleme, wenn Sie Funktionsereignisempfänger debuggen, da eine von Visual Studio aktivierte Funktion in einem anderen Prozess ausgeführt wird als der Debugger. Dies bedeutet, dass einige Debugfunktionen, z. B. Haltepunkte, nicht ordnungsgemäß funktionieren.
Um die automatische Aktivierung der Funktion in SharePoint zu deaktivieren und das ordnungsgemäße Debuggen von Funktionsereignisempfängern zu ermöglichen, legen Sie vor dem Debuggen den Wert der Eigenschaft Aktive Bereitstellungskonfiguration des Projekts auf Keine Aktivierung fest. Wenn die Visual Studio-SharePoint-Anwendung dann ausgeführt wird, aktivieren Sie die Funktion manuell in SharePoint. Klicken Sie hierzu in SharePoint im Menü Websiteaktionen auf Websiteeinstellungen, klicken Sie auf den Link Websitefeatures verwalten, und klicken Sie dann neben der Funktion auf die Schaltfläche Aktivieren. Setzen Sie das Debuggen dann normal fort.
Aktivieren von erweiterten Debuginformationen
Aufgrund der manchmal komplexen Interaktionen zwischen dem Visual Studio-Prozess (devenv.exe), dem Visual Studio-SharePoint-Hostprozess (vssphost4.exe), SharePoint und der WCF-Ebene kann das Diagnostizieren von Fehlern, die beim Erstellen, Bereitstellen usw. auftreten, schwierig sein. Um Unterstützung beim Beheben solcher Fehler zu erhalten, können Sie erweiterte Debuginformationen aktivieren. Wechseln Sie hierzu in die Windows-Registrierung zum folgenden Registrierungsschlüssel:
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\SharePointTools]
Ändern Sie den EnableDiagnostics-Schlüsselwert von "0" in "1".
Wenn dieser Schlüsselwert auf 1 festgelegt wird, werden Stapelüberwachungsinformationen im Fenster Ausgabe angezeigt, wenn bei der Ausführung in Visual Studio Projektsystemfehler auftreten. Legen Sie EnableDiagnostics wieder auf 0 fest, um erweiterte Debuginformationen zu deaktivieren.
Weitere Informationen zu anderen SharePoint-Registrierungsschlüsseln finden Sie unter Debuggen von Erweiterungen für die SharePoint-Tools in Visual Studio.