Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie die Ablaufverfolgung zur Problembehandlung bei einem Plug-In oder einer benutzerdefinierten Workflowaktivität (benutzerdefinierter Code). Mithilfe der Ablaufverfolgung können Entwickler Laufzeitinformationen aufzeichnen, die bei der Diagnose der Ursache von Codefehlern helfen. Tracing unterstützt die synchrone und asynchrone Ausführung.
Ein Dienst namens ITracingService zeichnet Laufzeitablaufverfolgungsdaten für Microsoft Dataverse auf. Benutzerdefinierter Code kann Informationen für diesen Dienst bereitstellen, die an drei verschiedenen Stellen aufgezeichnet werden können:
Ablaufprotokoll
Das System schreibt Nachverfolgungsprotokolleinträge in die PluginTraceLog-Tabelle. Das Schreiben dieser Datensätze wird über die Ablaufverfolgungseinstellungen gesteuert, die in Ablaufverfolgungsprotokollierung aktivieren beschrieben werden.
Sie finden diese Daten in modellgesteuerten Anwendungen, indem Sie zu "Einstellungen" navigieren und die Kachel "Plug-In-Ablaufverfolgungsprotokoll " auswählen. Die Kachel ist nur sichtbar, wenn Sie in Ihrer zugewiesenen Sicherheitsrolle Zugriff auf die Datensätze der Ablaufverfolgungsprotokolltabelle haben.
Möglicherweise können Sie diese Daten einfacher anzeigen, indem Sie die Web-API in Ihrem Browser verwenden, wie im Beispiel unter Ablaufverfolgung verwenden gezeigt, oder indem Sie das Communitytool Plugin Trace Viewer verwenden.
Wichtig
Die Ablaufverfolgungsprotokollierung erfordert Organisationsspeicherplatz, insbesondere wenn viele Ablaufverfolgungen und Ausnahmen generiert werden. Aktivieren Sie die Ablaufverfolgungsprotokollierung nur für das Debuggen und die Problembehandlung, und deaktivieren Sie sie, wenn Sie fertig sind.
Fehlerdialogfeld
Eine synchrone registrierte Plug-In- oder benutzerdefinierte Workflowaktivität, die eine Ausnahme von der Plattform zurückgibt, führt zu einem Fehlerdialogfeld in der Webanwendung, das dem angemeldeten Benutzer angezeigt wird. Der Benutzer kann im Dialogfeld auf die Schaltfläche Protokolldatei herunterladen klicken, um das Protokoll mit Ausnahme- und Trace-Ausgaben anzuzeigen.
Systemauftrag
Bei asynchron registrierten Plug-In- oder benutzerdefinierten Workflowaktivitäten, die eine Ausnahme zurückgeben, werden die Ablaufverfolgungsinformationen im Detailbereich des Formulars "Systemauftrag " in der Webanwendung angezeigt.
Ablaufverfolgungsprotokollierung aktivieren
Ob Trace-Logs geschrieben werden, hängt vom Wert der Organisation Tabelle PluginTraceLogSetting Spalte ab. Sie können die Ablaufverfolgungsprotokollierung aktivieren, indem Sie programmgesteuert den PluginTraceLogSetting-Wert aktualisieren.
Eine zweite Methode zur Aktivierung der Ablaufverfolgungsprotokollierung erfolgt über die Legacy-Webanwendung. Gehen Sie zu Einstellungen>Verwaltung>Systemeinstellungen. Suchen Sie auf der Registerkarte Anpassung das Dropdownmenü namens Protokollierung in Plug-In-Ablaufverfolgungsprotokoll aktivieren, und wählen Sie eine der verfügbaren Optionen aus. Weitere Informationen finden Sie unter "Einstellungen" in Unified Interface-Apps und -Einstellungen in älteren Webclient-Apps.
Eine dritte Option finden Sie im Plug-In-Registrierungstool. Nachdem Sie das Tool mit Ihrer Organisation (Umgebung) verbunden haben, wählen Sie Einstellungen>Protokollierung im Plug-In-Ablaufverfolgungsprotokoll und wählen Sie dann eine der verfügbaren Optionen aus.
| Wert | Option | Beschreibung |
|---|---|---|
| 0 | Deaktiviert | Das Schreiben in das Traceprotokoll ist deaktiviert. Es werden keine PluginTraceLog-Datensätze erstellt. Allerdings kann benutzerdefinierter Code weiter die Trace(String, Object[])-Methode aufrufen, auch wenn noch kein Protokoll geschrieben wurde. |
| 1 | Ausnahmen | Ablaufverfolgungsinformationen werden in das Protokoll geschrieben, wenn eine Ausnahme von benutzerdefiniertem Code wieder an die Plattform zurückgegeben wird. |
| 2 | Alle | Ablaufverfolgungsinformationen werden bei Fertigstellung von Code in das Protokoll geschrieben, oder wenn eine Ausnahme von benutzerdefiniertem Code wieder an die Plattform zurückgegeben wird. |
Wenn die Ablaufverfolgungsprotokollierungs-Einstellung auf Ausnahme gesetzt ist und benutzerdefinierter Code eine Ausnahme wieder zur Plattform zurückgibt, wird ein Ablaufverfolgungsprotokolldatensatz erstellt und Ablaufverfolgungsinformationen werden zudem an einen anderen Ort geschrieben. Bei benutzerdefiniertem Code, der synchron ausgeführt wird, werden die Informationen in einem Fehlerdialogfeld dem Benutzer angezeigt; andernfalls, für asynchronen Code, werden die Informationen in den verknüpften Systemauftrag geschrieben.
Schreiben in den Ablaufverfolgungsdienst
Bevor Sie an den Ablaufverfolgungsdienst schreiben, müssen Sie zunächst das Objekt des Ablaufverfolgungsdiensts aus dem übergebenen Ausführungskontext abrufen. Fügen Sie anschließend an den entsprechenden Stellen Trace(String, Object[])-Aufrufe in Ihrem benutzerdefinierten Code hinzu und übergeben Sie dabei im Methodenaufruf alle relevanten Diagnoseinformationen.
//Extract the tracing service for use in debugging plug-ins.
ITracingService tracingService =
(ITracingService)serviceProvider.GetService(typeof(ITracingService));
// Use the tracing service
tracingService.Trace("Write your message here.");
Entwickeln Sie anschließend das Plug-In oder die benutzerdefinierte Workflowaktion und stellen Sie diese(s) bereit. Während der Ausführung des angepassten Codes werden die in den Trace-Methodenaufrufen bereitgestellten Informationen in einen Datensatz der Trace-Log-Tabelle von ITracingService geschrieben, wenn dies von Ihrer Organisation unterstützt wird und aktiviert ist, und könnten dem Benutzer auch in einem Web-Dialog oder System-Job zur Verfügung gestellt werden, wie im vorherigen Abschnitt beschrieben. Die Ablaufverfolgungsinformationen, die in das Ablaufverfolgungsprotokoll geschrieben werden, werden in den Ablaufverfolgungseinstellungen konfiguriert. Weitere Informationen unter Trace-Logging aktivieren.
Anmerkung
Wenn Ihr angepasster Code innerhalb einer Datenbanktransaktion ausgeführt wird und eine Ausnahme auftritt, die einen Transaktions-Rollback verursacht, werden alle Tabellendatenänderungen durch Ihren Code rückgängig gemacht. Die PluginTraceLog-Einträge bleiben jedoch nach Abschluss des Rollbacks bestehen.
Zusätzliche Informationen über den Tracing-Dienst
Die ITracingService bündelt die Informationen, die sie über die Methode Trace empfängt. Sie schreibt die Informationen in einen neuen PluginTraceLog-Eintrag , nachdem der benutzerdefinierte Code erfolgreich ausgeführt wurde oder eine Ausnahme auslöst.
Jeder Trace-Aufruf wird als eine neue Zeile in der Spalte PluginTraceLogMessageBlock protokolliert. Sie können nur 10 KB Text schreiben. Um diesen Grenzwert zu erreichen, entfernt das System ältere Ablaufverfolgungslinien, sodass nur die letzten Zeilen gespeichert werden.
PluginTraceLog-Datensätze haben eine begrenzte Gültigkeitsdauer. Ein Massenlöschungs-Hintergrundauftrag wird einmal täglich ausgeführt, um Datensätze zu löschen, die älter als 24 Stunden seit der Erstellung sind. Um ein übermäßiges Datenbankwachstum zu verhindern, kann Microsoft die Protokollierung im Plug-In-Ablaufverfolgungsprotokoll deaktivieren, wenn die Tabelle plugintracelogbase 100 GB überschreitet.
Vorsicht
Sie können diesen Auftrag zwar deaktivieren oder die Häufigkeit anpassen, mit der er auftritt, aber wenn Sie ihn nicht auf die ursprüngliche Einstellung zurücksetzen, kann dies zu Leistungsproblemen führen.
Zugriff auf vertrauliche Spalten
Bestimmte Plug-InTraceLog-Spalten können vertrauliche Informationen wie Verbindungszeichenfolgen, geheime Schlüssel oder Geschäftsdaten enthalten, die von benutzerdefiniertem Code geschrieben wurden. Um versehentliche Gefährdung von Anmeldeinformationen zu verringern, schränkt Dataverse den Lesezugriff auf die folgenden Spalten auf Benutzer ein, denen die Sicherheitsrolle "Systemadministrator " zugewiesen wurde:
- MessageBlock — die Tracezeilen, die von Ihrem Code über die Trace(String, Object[])-Methode ausgegeben werden.
- Konfiguration – die unsichere Konfiguration, die an den Plug-In-Schritt übergeben wurde.
- SecureConfiguration – die sichere Konfiguration, die an den Plug-In-Schritt übergeben wurde.
Wenn ein Benutzer ohne die Rolle "Systemadministrator " Plug-In-Ablaufverfolgungsprotokolldatensätze liest – z. B. über die Kachel "Plug-In-Ablaufverfolgungsprotokoll " in einer modellgesteuerten App, der Web-API oder einem Communitytool – gibt Dataverse für diese drei Spalten zurück null . Alle anderen Spalten (wie z. B. TypeName, MessageName, PrimaryEntity und ExceptionDetails) bleiben gemäß den bestehenden Tabellenberechtigungen des Aufrufers sichtbar.
Anmerkung
Die Rolle "Systemadministrator " erfüllt diese Überprüfung, ob sie dem Benutzer direkt zugewiesen oder über die Teammitgliedschaft geerbt wird.
Community-Werkzeuge
Plug-In-Ablaufverfolgungsanzeige
Plugin Trace Viewer ist ein Tool, das die XrmToolBox-Community entwickelt hat. Informationen zu von der Community entwickelten Tools finden Sie im Artikel "Community tools for Dataverse ".
Anmerkung
Microsoft bietet keine Unterstützung für Communitytools. Wenn Sie Fragen zum Tool haben, wenden Sie sich an den Herausgeber. Weitere Informationen finden Sie unter XrmToolBox.
Siehe auch
Plug-Ins
Debuggen Sie ein Plug-In
Trace-Protokolle anzeigen
Ablaufverfolgungsdienst
PluginTraceLog-Tabelle