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.
In diesem Abschnitt werden die APIs der Diagnoseclientbibliothek beschrieben.
DiagnosticsClient-Klasse
public sealed class DiagnosticsClient
{
public DiagnosticsClient(int processId);
public EventPipeSession StartEventPipeSession(
IEnumerable<EventPipeProvider> providers,
bool requestRundown = true,
int circularBufferMB = 256);
public EventPipeSession StartEventPipeSession(
EventPipeProvider provider,
bool requestRundown = true,
int circularBufferMB = 256);
public EventPipeSession StartEventPipeSession(
EventPipeSessionConfiguration config);
public Task<EventPipeSession> StartEventPipeSessionAsync(
IEnumerable<EventPipeProvider> providers,
bool requestRundown,
int circularBufferMB = 256,
CancellationToken token = default);
public Task<EventPipeSession> StartEventPipeSessionAsync(
EventPipeProvider provider,
bool requestRundown,
int circularBufferMB = 256,
CancellationToken token = default);
public Task<EventPipeSession> StartEventPipeSessionAsync(
EventPipeSessionConfiguration configuration,
CancellationToken token);
public void WriteDump(
DumpType dumpType,
string dumpPath,
bool logDumpGeneration = false);
public void WriteDump(
DumpType dumpType,
string dumpPath,
WriteDumpFlags flags);
public Task WriteDumpAsync(
DumpType dumpType,
string dumpPath,
bool logDumpGeneration,
CancellationToken token);
public Task WriteDumpAsync(
DumpType dumpType,
string dumpPath,
WriteDumpFlags flags,
CancellationToken token);
public void AttachProfiler(
TimeSpan attachTimeout,
Guid profilerGuid,
string profilerPath,
byte[] additionalData = null);
public void SetStartupProfiler(
Guid profilerGuid,
string profilerPath);
public void ResumeRuntime();
public void SetEnvironmentVariable(
string name,
string value);
public Dictionary<string, string> GetProcessEnvironment();
public void ApplyStartupHook(
string startupHookPath);
public Task ApplyStartupHookAsync(
string startupHookPath,
CancellationToken token);
public void EnablePerfMap(
PerfMapType type);
public void DisablePerfMap();
public static IEnumerable<int> GetPublishedProcesses();
}
Konstruktor
public DiagnosticsClient(int processId);
Erstellt eine neue Instanz von DiagnosticsClient für einen kompatiblen .NET-Prozess, der mit der Prozess-ID von processId ausgeführt wird.
processID: Prozess-ID der Zielanwendung.
StartEventPipeSession-Methoden
public EventPipeSession StartEventPipeSession(
IEnumerable<EventPipeProvider> providers,
bool requestRundown = true,
int circularBufferMB = 256);
public Task<EventPipeSession> StartEventPipeSessionAsync(
IEnumerable<EventPipeProvider> providers,
bool requestRundown,
int circularBufferMB = 256,
CancellationToken token = default);
Startet eine EventPipe-Ablaufverfolgungssitzung unter Verwendung der angegebenen Anbieter und Einstellungen.
-
providers: EinIEnumerablevonEventPipeProvider-Elementen zum Starten der Ablaufverfolgung. -
requestRundown: Einbool, der angibt, ob Rundownanbieterereignisse aus der Runtime der Ziel-App angefordert werden sollen. -
circularBufferMB: Einint, der die Gesamtgröße des Zirkelpuffers angibt, welcher von der Runtime der Ziel-App beim Erfassen von Ereignissen verwendet wird. -
token(für die asynchrone Überladung): Das Token, das auf Abbruchanforderungen überwacht werden soll.
public EventPipeSession StartEventPipeSession(
EventPipeProvider provider,
bool requestRundown = true,
int circularBufferMB = 256);
public Task<EventPipeSession> StartEventPipeSessionAsync(
EventPipeProvider provider,
bool requestRundown,
int circularBufferMB = 256,
CancellationToken token = default);
Startet eine EventPipe-Ablaufverfolgungssitzung mit einem einzelnen Anbieter.
-
provider: EinEventPipeProviderzum Starten der Ablaufverfolgung. -
requestRundown: Einbool, der angibt, ob Rundownanbieterereignisse aus der Runtime der Ziel-App angefordert werden sollen. -
circularBufferMB: Einint, der die Gesamtgröße des Zirkelpuffers angibt, welcher von der Runtime der Ziel-App beim Erfassen von Ereignissen verwendet wird. -
token(für die asynchrone Überladung): Das Token, das auf Abbruchanforderungen überwacht werden soll.
public EventPipeSession StartEventPipeSession(
EventPipeSessionConfiguration config);
public Task<EventPipeSession> StartEventPipeSessionAsync(
EventPipeSessionConfiguration configuration,
CancellationToken token);
Startet eine EventPipe-Ablaufverfolgungssitzung mithilfe einer EventPipeSessionConfiguration.
-
config/configuration: EineEventPipeSessionConfiguration, die die Sitzung definiert. -
token(für die asynchrone Überladung): Das Token, das auf Abbruchanforderungen überwacht werden soll.
Hinweis
Rundownereignisse enthalten Nutzlasten, die für die Nachanalyse erforderlich sein können, z. B. das Auflösen von Methodennamen von Threadbeispielen. Sofern Sie dies nicht möchten, wird empfohlen, diesen Wert auf requestRundown zu setzen. Bei großen Anwendungen kann dies eine Weile dauern.
WriteDump-Methode
public void WriteDump(
DumpType dumpType,
string dumpPath,
bool logDumpGeneration=false);
Fordert ein Speicherabbild zum nachträglichen Debuggen der Zielanwendung an. Der Typ des Speicherabbilds kann mithilfe der DumpType-Enumeration angegeben werden.
-
dumpType: Typ des angeforderten Speicherabbilds. -
dumpPath: Der Pfad zum Speicherabbild, in das geschrieben werden soll. -
logDumpGeneration: Wenn dieser Wert auftruefestgelegt ist, schreibt die Zielanwendung Diagnoseprotokolle während der Generierung des Speicherabbilds.
public void WriteDump(
DumpType dumpType,
string dumpPath,
WriteDumpFlags flags)
Fordert ein Speicherabbild zum nachträglichen Debuggen der Zielanwendung an. Der Typ des Speicherabbilds kann mithilfe der DumpType-Enumeration angegeben werden.
-
dumpType: Typ des angeforderten Speicherabbilds. -
dumpPath: Der Pfad zum Speicherabbild, in das geschrieben werden soll. -
flags: Flags für Protokollierungs- und Absturzberichte. Bei Runtimes vor 6.0 wird nur LoggingEnabled unterstützt.
public Task WriteDumpAsync(
DumpType dumpType,
string dumpPath,
bool logDumpGeneration,
CancellationToken token)
Fordert ein Speicherabbild zum nachträglichen Debuggen der Zielanwendung an. Der Typ des Speicherabbilds kann mithilfe der DumpType-Enumeration angegeben werden.
-
dumpType: Typ des angeforderten Speicherabbilds. -
dumpPath: Der Pfad zum Speicherabbild, in das geschrieben werden soll. -
logDumpGeneration: Wenn dieser Wert auftruefestgelegt ist, schreibt die Zielanwendung Diagnoseprotokolle während der Generierung des Speicherabbilds. -
token: das Token zum Überwachen von Abbruchanforderungen.
public Task WriteDumpAsync(
DumpType dumpType,
string dumpPath,
WriteDumpFlags flags,
CancellationToken token)
Fordert ein Speicherabbild zum nachträglichen Debuggen der Zielanwendung an. Der Typ des Speicherabbilds kann mithilfe der DumpType-Enumeration angegeben werden.
-
dumpType: Typ des angeforderten Speicherabbilds. -
dumpPath: Der Pfad zum Speicherabbild, in das geschrieben werden soll. -
flags: Flags für Protokollierungs- und Absturzberichte. Bei Runtimes vor 6.0 wird nur LoggingEnabled unterstützt. -
token: das Token zum Überwachen von Abbruchanforderungen.
ApplyStartupHook-Methoden
public void ApplyStartupHook(
string startupHookPath);
public Task ApplyStartupHookAsync(
string startupHookPath,
CancellationToken token);
Lädt die angegebene Assembly mit einem StartupHook im Zielprozess.
-
startupHookPath: Der Pfad zur Assembly, die den Start-Hook enthält. -
token(für die asynchrone Überladung): Das Token, das auf Abbruchanforderungen überwacht werden soll.
PerfMap-Methoden
public void EnablePerfMap(
PerfMapType type);
public void DisablePerfMap();
Steuert die Generierung von perf-Karten im Zielprozess.
-
type: GibtPerfMapTypeden Typ der zu aktivierenden Perf-Zuordnung an.
AttachProfiler-Methode
public void AttachProfiler(
TimeSpan attachTimeout,
Guid profilerGuid,
string profilerPath,
byte[] additionalData=null);
Fordert das Anfügen eines ICorProfiler an die Zielanwendung an.
-
attachTimeout: EinTimeSpan, nach dem das Anfügen abgebrochen wird. -
profilerGuid:Guidder anzufügenden ICorProfiler-Instanz. -
profilerPath: Pfad der anzufügenden ICorProfiler-DLL. -
additionalData: Optionale zusätzliche Daten, die während des Anfügens des Profilers an die Runtime übergeben werden können.
SetStartupProfiler-Methode
public void SetStartupProfiler(
Guid profilerGuid,
string profilerPath);
Legt einen Profiler als Startprofiler fest. Dieser Befehl kann nur ausgeführt werden, wenn die Runtime beim Start angehalten wird.
-
profilerGuid:Guidfür den anzufügenden Profiler. -
profilerPath: Pfad zum anzufügenden Profiler.
ResumeRuntime-Methode
public void ResumeRuntime();
Weist die Runtime an, die Ausführung fortzusetzen, nachdem sie beim Start angehalten wurde.
SetEnvironmentVariable-Methode
public void SetEnvironmentVariable(
string name,
string value);
Legt eine Umgebungsvariable im Zielprozess fest.
-
name: der Name der festzulegenden Umgebungsvariablen. -
value: der Wert der festzulegenden Umgebungsvariablen.
GetProcessEnvironment
public Dictionary<string, string> GetProcessEnvironment()
Ruft alle Umgebungsvariablen und deren Werte aus dem Zielprozess ab.
GetPublishedProcesses-Methode
public static IEnumerable<int> GetPublishedProcesses();
Ruft ein IEnumerable von Prozess-IDs aller aktiven .NET-Prozesse ab, die zum Anfügen verwendet werden können.
EventPipeSessionConfiguration-Klasse
public sealed class EventPipeSessionConfiguration
{
public EventPipeSessionConfiguration(
IEnumerable<EventPipeProvider> providers,
int circularBufferSizeMB = 256,
bool requestRundown = true,
bool requestStackwalk = true);
public EventPipeSessionConfiguration(
IEnumerable<EventPipeProvider> providers,
int circularBufferSizeMB,
long rundownKeyword,
bool requestStackwalk = true);
public EventPipeSessionConfiguration(
IEnumerable<EventPipeProvider> providers,
int circularBufferSizeMB,
long rundownKeyword,
bool requestStackwalk,
EventPipeBufferingMode bufferingMode);
public bool RequestRundown { get; }
public int CircularBufferSizeInMB { get; }
public bool RequestStackwalk { get; }
public long RundownKeyword { get; }
public EventPipeBufferingMode BufferingMode { get; }
public IReadOnlyCollection<EventPipeProvider> Providers { get; }
}
Stellt die Konfiguration für eine EventPipeSession.
-
providers: EineIEnumerablevonEventPipeProviders, die aktiviert werden soll. -
circularBufferSizeMB: Die Größe in MB des Laufzeitpuffers zum Sammeln von Ereignissen. -
requestRundown: Wenntrue, Anforderungsausführungsereignisse aus der Laufzeit. -
requestStackwalk: Wenntrue, zeichnen Sie eine Stapelablaufverfolgung für jedes ausgegebene Ereignis auf. -
rundownKeyword: Das Schlüsselwortformat, das für Rundownereignisse verwendet wird. -
bufferingMode: DieEventPipeBufferingModefür die Sitzung. WirdBlockverwendet, um eine sammlung ohne Verlust anzufordern. Die ÜbergabeBlockerfordert eine .NET 11+ Ziellaufzeit; bei einer älteren LaufzeitStartEventPipeSessionwird ausgelöstUnsupportedCommandException.
Die BufferingMode Eigenschaft gibt den Puffermodus für die Sitzung zurück. Der Standardwert behält Dropden Verlustpuffer der Laufzeit bei.
EventPipeProvider-Klasse
public class EventPipeProvider
{
public EventPipeProvider(
string name,
EventLevel eventLevel,
long keywords = 0,
IDictionary<string, string> arguments = null)
public EventPipeProvider(
string name,
EventLevel eventLevel,
long keywords,
IDictionary<string, string> arguments,
EventPipeProviderEventFilter eventFilter)
public string Name { get; }
public EventLevel EventLevel { get; }
public long Keywords { get; }
public IDictionary<string, string> Arguments { get; }
public EventPipeProviderEventFilter EventFilter { get; }
public override string ToString();
public override bool Equals(object obj);
public override int GetHashCode();
public static bool operator ==(Provider left, Provider right);
public static bool operator !=(Provider left, Provider right);
}
Konstruktor
public EventPipeProvider(
string name,
EventLevel eventLevel,
long keywords = 0,
IDictionary<string, string> arguments = null)
public EventPipeProvider(
string name,
EventLevel eventLevel,
long keywords,
IDictionary<string, string> arguments,
EventPipeProviderEventFilter eventFilter)
Erstellt eine neue Instanz von EventPipeProvider mit dem angegebenen Anbieternamen, EventLevel, Schlüsselwörtern und Argumenten. Die zweite Überladung verwendet auch eine EventPipeProviderEventFilter Filterung, welche Ereignis-IDs die Laufzeit für den Anbieter ermöglicht. Wenn Sie einen Ereignisfilter festlegen, erfordert die Sitzung eine .NET 10+ Ziellaufzeit.
Name-Eigenschaft
public string Name { get; }
Ruft den Namen des Anbieters ab.
EventLevel-Eigenschaft
public EventLevel EventLevel { get; }
Ruft die EventLevel der angegebenen Instanz von EventPipeProvider ab.
Keywords-Eigenschaft
public long Keywords { get; }
Ruft einen Wert ab, der die Bitmaske für Schlüsselwörter der EventSource darstellt.
Arguments-Eigenschaft
public IDictionary<string, string> Arguments { get; }
Ruft ein IDictionary von Schlüssel-Wert-Paarzeichenfolgen ab, die optionale Argumente darstellen, welche an EventSource übergeben werden sollen, die den angegebenen EventPipeProvider darstellen.
EventFilter-Eigenschaft
public EventPipeProviderEventFilter EventFilter { get; }
Ruft die optionale EventPipeProviderEventFilter , die Laufzeit auf die Ereignis-IDs dieses Anbieters nach dem Schlüsselwort- und Ebenenfilter angewendet wird. Wenn der Wert lautet null, aktiviert die Laufzeit jede Ereignis-ID, die das Schlüsselwort und der Ebenenfilter zulässt.
Bemerkungen
Diese Klasse ist unveränderlich, da EventPipe das Ändern der Konfiguration eines Anbieters während einer EventPipe-Sitzung ab .NET Core 3.1 nicht zulässt.
EventPipeProviderEventFilter-Klasse
public sealed class EventPipeProviderEventFilter
{
public EventPipeProviderEventFilter(
bool enable,
IReadOnlyList<uint> eventIds);
public bool Enable { get; }
public IReadOnlyList<uint> EventIds { get; }
}
Stellt einen optionalen Anbieterfilter auf Ereignis-IDs dar. Die Laufzeit wendet den Filter nach dem Schlüsselwort- und Ebenenfilter des zugeordneten EventPipeProvider. Ereignisfilter erfordern eine .NET 10+ Ziellaufzeit.
Konstruktor
public EventPipeProviderEventFilter(
bool enable,
IReadOnlyList<uint> eventIds);
Erstellt eine neue Instanz von EventPipeProviderEventFilter.
-
enable: IsttrueeineeventIdsZulassungsliste, und die Laufzeit aktiviert nur diese Ereignis-IDs. Wennfalsees sich umeventIdseine Ablehnungsliste handelt und die Laufzeit jede Ereignis-ID außer den aufgeführten aktiviert. Eine leere Ablehnungsliste ermöglicht daher alle Ereignisse. -
eventIds: Die Ereignis-IDs, die aktiviert oder deaktiviert werden sollen, wie durchenable.
Enable-Eigenschaft
public bool Enable { get; }
Ruft einen Wert ab, der angibt, ob EventIds es sich um eine Zulassungsliste (true) oder eine Ablehnungsliste (false) handelt.
EventIds-Eigenschaft
public IReadOnlyList<uint> EventIds { get; }
Ruft die Liste der Ereignis-IDs ab, die der Filter aktiviert oder deaktiviert.
EventPipeSession-Klasse
public class EventPipeSession : IDisposable
{
public Stream EventStream { get; }
public void Stop();
public Task StopAsync(
CancellationToken cancellationToken);
public void Dispose();
}
Diese Klasse stellt eine laufende EventPipe-Sitzung dar. Sie ist unveränderlich und fungiert als Handle für eine EventPipe-Sitzung der angegebenen Runtime.
EventStream-Eigenschaft
public Stream EventStream { get; }
Ruft einen Stream ab, der zum Lesen des Ereignisdatenstroms verwendet werden kann.
Stop-Methoden
public void Stop();
public Task StopAsync(
CancellationToken cancellationToken);
Beendet die angegebene EventPipe-Sitzung.
-
cancellationToken(für die asynchrone Überladung): Das Token, das auf Abbruchanforderungen überwacht werden soll.
Dispose-Methode
public void Dispose();
Veröffentlicht Ressourcen, die mit der EventPipeSession.
DiagnosticsClientConnector-Klasse
public sealed class DiagnosticsClientConnector : IAsyncDisposable
{
public DiagnosticsClient Instance { get; }
public ValueTask DisposeAsync();
public static Task<DiagnosticsClientConnector> FromDiagnosticPort(
string diagnosticPort,
CancellationToken ct);
}
Stellt ein Hilfsprogramm dar, das einen DiagnosticsClient aus einem Diagnoseport erstellt und die Lebensdauer der zugrunde liegenden Diagnoseserververbindung verwaltet.
-
Instance: DieDiagnosticsClientVerbindung mit der Ziellaufzeit. -
DisposeAsync: Entfernt den zugrunde liegenden Server/die zugrunde liegende Verbindung asynchron. -
FromDiagnosticPort: Erstellt ein neuesDiagnosticsClientConnectoraus dem angegebenen Diagnoseport.
public static Task<DiagnosticsClientConnector> FromDiagnosticPort(
string diagnosticPort,
CancellationToken ct)
-
diagnosticPort: Die Diagnoseportzeichenfolge (z. B. ein Listen- oder Verbindungsport), über den eine Verbindung hergestellt werden soll. -
ct: das Token zum Überwachen von Abbruchanforderungen.
DumpType-Enumeration
public enum DumpType
{
Normal = 1,
WithHeap = 2,
Triage = 3,
Full = 4
}
Stellt den Typ des Speicherabbilds dar, das angefordert werden kann.
-
Normal: Es werden nur die Informationen aufgenommen, die zum Erfassen von Stapelüberwachungen für alle vorhandenen Ablaufüberwachungen für alle vorhandenen Threads in einem Prozess erforderlich sind. Heaparbeitsspeicher und -informationen der GC sind eingeschränkt. -
WithHeap: Es werden nur die GC-Heaps und Informationen aufgenommen, die zum Erfassen von Stapelüberwachungen für alle vorhandenen Threads in einem Prozess erforderlich sind. -
Triage: Es werden nur die Informationen aufgenommen, die zum Erfassen von Stapelüberwachungen für alle vorhandenen Ablaufüberwachungen für alle vorhandenen Threads in einem Prozess erforderlich sind. Heaparbeitsspeicher und -informationen der GC sind eingeschränkt. Einige Inhalte, die bekanntermaßen vertrauliche Informationen enthalten, z. B. vollständige Modulpfade, werden redacted. Obwohl dies beabsichtigt ist, einige Fälle vertraulicher Datenexposition zu mindern, besteht keine Garantie dafür, dass dieses Redaction-Feature allein ausreicht, um ein bestimmtes Recht oder einen bestimmten Standard in Bezug auf den Datenschutz einzuhalten. -
Full: Es wird der gesamte verfügbare Arbeitsspeicher im Prozess aufgenommen. Die Rohdaten des Arbeitsspeichers sind am Ende enthalten, sodass die ursprünglichen Strukturen direkt ohne die unformatierten Arbeitsspeicherinformationen zugeordnet werden können. Diese Option kann zu einer sehr großen Speicherabbilddatei führen.
WriteDumpFlags-Enumeration
public enum WriteDumpFlags
{
None = 0x00,
LoggingEnabled = 0x01,
VerboseLoggingEnabled = 0x02,
CrashReportEnabled = 0x04
}
Stellt zusätzliche Optionen dar, die beim Anfordern eines Dumps angegeben werden können.
-
None: Kein zusätzliches Verhalten. -
LoggingEnabled: Aktivieren der grundlegenden Protokollierung während der Speicherabbildgenerierung. -
VerboseLoggingEnabled: Aktivieren Sie die ausführliche Protokollierung während der Speicherabbildgenerierung. -
CrashReportEnabled: Aktivieren der Generierung eines Absturzberichts.
PerfMapType-Enumeration
public enum PerfMapType
{
None = 0,
All = 1,
JitDump = 2,
PerfMap = 3
}
Stellt den Typ des perf-Kartenverhaltens dar, das aktiviert werden kann.
-
None: Keine Perf-Kartenausgabe. -
All: Alle prof-Kartenausgabe aktivieren, die von der Laufzeit unterstützt werden. -
JitDump: Aktivieren Sie jiT dump perf map output. -
PerfMap: Aktivieren Der herkömmlichen Perf-Kartenausgabe.
EventPipeBufferingMode-Enumeration
public enum EventPipeBufferingMode
{
Drop = 0,
Block = 1
}
Steuert, wie sich der Ereignispuffer der Laufzeit pro Sitzung verhält, wenn er schneller gefüllt wird, als die Sitzung sie entwässert.
-
Drop: Der Standard für die Laufzeit. Die Sitzung verwendet einen Puffer, der Ereignisse abbricht, wenn sie überläuft, sodass die Sammlung verloren geht. -
Block: Nicht verlustbehaftete Sammlung. Die Laufzeit blockiert Ereignishersteller, wenn der Puffer voll ist, anstatt Ereignisse abwerfen zu müssen. Verwenden Sie sie für Sammlungen, die vollständig sein müssen, z. B. eine Heap-Momentaufnahme auf einem großen Heap.Blockist nicht verlustfrei, sondern nur bis zur Kapazität des Puffers, nicht für die Ausschöpfung des Hostspeichers: Wenn die Laufzeit den Speicher nicht zuordnen kann, den sie zum Reservieren des Pufferspeichers benötigt, oder während des Herunterfahrens der Sitzung, wird das Ereignis anstelle des Blockierens aufgehoben.Blockerfordert eine .NET 11+ Ziellaufzeit; bei einer älteren Laufzeit wird die Sitzung ausgelöstUnsupportedCommandException.
Ausnahmen
Von der Bibliothek ausgelöste Ausnahmen weisen den Typ DiagnosticsClientException oder einen abgeleiteten Typ auf.
public class DiagnosticsClientException : Exception
UnsupportedProtocolException
public class UnsupportedProtocolException : DiagnosticsClientException
Diese Ausnahme kann ausgelöst werden, wenn die Runtime des Zielprozesses nicht mit dem von der Bibliothek verwendeten IPC-Diagnoseprotokoll kompatibel ist.
ServerNotAvailableException
public class ServerNotAvailableException : DiagnosticsClientException
Diese Ausnahme kann ausgelöst werden, wenn die Runtime nicht für IPC-Diagnosebefehle verfügbar ist, z. B. früh während des Runtimestarts, bevor die Runtime für Diagnosebefehle bereit ist oder beim Herunterfahren der Runtime.
ServerErrorException
public class ServerErrorException : DiagnosticsClientException
Diese Ausnahme kann ausgelöst werden, wenn die Runtime mit einem Fehler auf einen bestimmten Befehl antwortet.
UnsupportedCommandException
public class UnsupportedCommandException : ServerErrorException
Diese Ausnahme wird ausgelöst, wenn der Befehl nicht von der Bibliothek oder der Laufzeit des Zielprozesses unterstützt wird.
ProfilerAlreadyActiveException
public class ProfilerAlreadyActiveException : ServerErrorException
Diese Ausnahme wird ausgelöst, wenn ein Profiler bereits in die Ziellaufzeit geladen wird und eine weitere Anfügung versucht wird.
BadEncodingException
public class BadEncodingException : ServerErrorException
Diese Ausnahme wird ausgelöst, wenn die Ziellaufzeit die Befehlsnutzlast nicht decodiert und abgelehnt wird. Bei einem wohlgeformten Client bedeutet dies in der Regel, dass die Laufzeit zu alt ist, um einen neueren konfigurierten Optionswert zu verstehen, sodass sie die Anforderung während der Analyse ablehnt.