Freigeben über


Konfigurieren der Registrierung

SymProxy speichert seine Einstellungen in diesem Registrierungsschlüssel.

HKLM/Software/Microsoft/Symbol Server Proxy

Dieser Registrierungsschlüssel steuert den Speicherort, an dem Symbole zum Speichern auf der Website gefunden werden sollen, die Protokollierungsebene und ob SymProxy mit einer direkten Verbindung mit dem Netzwerk arbeitet oder nicht. Sie können diesen Schlüssel erstellen, indem Sie das Mit Debugtools für Windows bereitgestellte SymProxy-Registrierungstool (Symproxy.reg) ausführen. Geben Sie symproxy.reg an der Eingabeaufforderung ein, oder doppelklicken Sie auf windows Explorer darauf.

Dadurch werden Einträge für die Einstellungen hinzugefügt, denen ein "x" vorangestellt wird, sodass sie deaktiviert sind. Um eine Einstellung zu aktivieren, entfernen Sie "x" vor der gewünschten Einstellung.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Symbol Server Proxy]
"Available Settings"="Remove the 'x' prefix to use the setting"
"xMissAgeTimeout"=dword:00015180
"xMissAgeCheck"=dword:00000e10
"xMissTimeout"=dword:00000e10
"xNoCache"=dword:00000001
"xNoFilePointers"=dword:00000001
"xNoInternetProxy"=dword:00000001
"xNoLongerIndexedAuthoritive"=dword:00000001
"xNoUncompress"=dword:00000001
"xRequestTimeout"=dword:0000019
"xRetryAppHang"=dword:0000002
"xUriFilter"=dword:00000FF
"xUriTiers"=dword:0000001

Die Registrierungsdatei symproxy.reg setzt den Namen des virtuellen Verzeichnisses Symbole voraus und konfiguriert den Symbolpfad für die Verwendung des öffentlichen Microsoft-Symbolservers.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Symbol Server Proxy\Web Directories]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Symbol Server Proxy\Web Directories\Symbols]
"SymbolPath"="https://msdl.microsoft.com/download/symbols"

Die Ereignisprotokollierungseinträge in symproxy.reg werden im Abschnitt Ereignisprotokoll dieses Themas behandelt.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\Microsoft-Windows-SymProxy]
"ProviderGuid"="{0876099c-a903-47ff-af14-52035bb479ef}"
"EventMessageFile"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,\
  00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,\
  5c,00,69,00,6e,00,65,00,74,00,73,00,72,00,76,00,5c,00,53,00,79,00,6d,00,50,\
  00,72,00,6f,00,78,00,79,00,2e,00,64,00,6c,00,6c,00,00,00
"TypesSupported"=dword:00000007

Die Webverzeichniseinträge in symproxy.reg werden in diesem Thema erläutert.

Webverzeichnisse

Für jedes in IIS generierte virtuelle Verzeichnis, das Sie als Symbolspeicher verwenden, müssen Sie einen Registrierungsschlüssel unter dem Unterschlüssel Webverzeichnisse des folgenden Registrierungsschlüssels einrichten.

HKLM/Software/Microsoft/Symbol Server Proxy

So bearbeiten Sie den Registrierungsschlüssel für ein virtuelles Symbolverzeichnis

  • Bearbeiten Sie den Inhalt von SymbolPath so, dass er alle vom SymProxy-Symbolspeicher verwendeten Symbolspeicher enthält. Wenn mehrere Symbolspeicher verwendet werden, trennen Sie diese durch Semikolons. Für jeden Wert werden maximal 10 Speicher unterstützt. HTTP-Pfade müssen das Präfix https:// enthalten, und UNC-Pfade müssen das \\ Präfix enthalten.

Wenn eines der virtuellen Verzeichnisse beispielsweise Symbole genannt wird und sich die Symbole, auf die zugegriffen wird, im UNC-Speicher \\symbols und im HTTP-Speicher https://msdl.microsoft.com/download/symbolsbefinden, erstellen Sie den folgenden Registrierungsschlüssel.

HKLM/Software/Microsoft/Symbol Server Proxy/Web Directories/Symbols

Nachdem dieser Schlüssel erstellt wurde, bearbeiten Sie seinen SymbolPath als \\symbols;https://msdl.microsoft.com/download/symbols. Dies ist im folgenden Screenshot des Registrierungs-Editors zu sehen.

Screenshot des Registrierungs-Editors mit einem aktualisierten SymbolPath

In diesem Beispiel sucht SymProxy zunächst nach Symbolen in \\symbols\symbols. Wenn die Dateien dort nicht gefunden werden, wird der Microsoft Symbol Store verwendet.

  • In jedem der Schlüssel unter Webverzeichnisse, die den Namen des virtuellen Verzeichnisses entsprechen, muss ein REG_SZ namens SymbolPath erstellt werden. Der Wert enthält alle Upstream Symbolspeicher, die zum Auffüllen des SymProxy-Symbolspeichers verwendet werden.

  • Maximal 10 Einträge werden unterstützt.

  • Trennen Sie Einträge mit Semikolons.

  • UNC-Pfade müssen das Präfix "\\" enthalten

  • HTTP-Pfade müssen das Präfix "https://" enthalten

  • Ordnen Sie die Werte von den günstigsten bis zu den teuersten werten an.

    • Bei der Berechnung müssen Sie die Nutzungsleistungsziele mit den Kosten für Server- und Datenkommunikation abwägen.

    • Stellen Sie im Allgemeinen lokale SMB/HTTP-Server vor HTTP-Internetservern.

SymProxy-Leistungsindikatoren

SymProxy kann Leistungsindikatoren über einen Anbieter namens SymProxy ausgeben.

Um die Unterstützung der Leistungsindikatoren zu aktivieren, registrieren Sie die symproxy-Manifestdatei in einem Administratorbefehlsfenster:

C:\> lodctr.exe /m:%WINDIR%\system32\inetsrv\symproxy.man

Um die Unterstützung der Leistungsindikatoren zu deaktivieren, heben Sie die Registrierung des Manifests auf:

C:\> unlodctr.exe /m:%WINDIR%\system32\inetsrv\symproxy.man

SymProxy-Ereignisablaufverfolgung für Windows

SymProxy kann ETW-Ereignisse über einen Anbieter namens Microsoft-Windows-SymProxy erstellen.

C:\> logman query providers | findstr SymProxy
Microsoft-Windows-SymProxy {0876099C-A903-47FF-AF14-52035BB479EF}

Um die ETW-Unterstützung zu aktivieren, registrieren Sie die Manifestdatei:

C:\> wevtutil.exe install-manifest %WINDIR%\system32\inetsrv\symproxy.man

Um die ETW-Unterstützung zu deaktivieren, heben Sie die Registrierung der Manifestdatei auf:

C:\> wevtutil.exe uninstall-manifest %WINDIR%\system32\inetsrv\symproxy.man

Ereignisprotokoll

Wenn ETW konfiguriert ist, werden die Ereignisse als Ereignisse in den Kanälen Operational und Analytic unter Anwendungs- und Dienstprotokolle\Microsoft\Windows\SymProxy im Ereignisprotokoll aufgezeichnet.

Um die Meldung der Ereignisprotokolleinträge ordnungsgemäß anzuzeigen, muss der Bereich Ereignisprotokoll der Datei symproxy.reg der Registrierung hinzugefügt werden:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\Microsoft-Windows-SymProxy]
"ProviderGuid"="{0876099c-a903-47ff-af14-52035bb479ef}"
"EventMessageFile"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,\
  00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,\
  5c,00,69,00,6e,00,65,00,74,00,73,00,72,00,76,00,5c,00,53,00,79,00,6d,00,50,\
  00,72,00,6f,00,78,00,79,00,2e,00,64,00,6c,00,6c,00,00,00
"TypesSupported"=dword:00000007

SymProxy-Ereignisse

SymProxy protokolliert die folgenden Ereignisse:

Ereignis-ID Beschreibung Kanal
1 Start des ISAPI-Filters Administrator
2 Beenden des ISAPI-Filters Administrator
3 Konfiguration des ISAPI-Filters Admin
4 Cachestatistik verpassen Administrator
10 URL-Anforderung – Lokaler Cachetreffer Bei Betrieb
11 URL-Anforderung– Fehler beim lokalen Cache Bei Betrieb
20 Symboldownload über SymSrv Bei Betrieb
30 Kritisches Symbol fehlt Administrator
31 Kritisches Bild fehlt Administrator
40 SymSrv – Pfad nicht gefunden Administrator
41 SymSrv – Datei nicht gefunden Administrator
42 SymSrv – Zugriff verweigert Administrator
43 SymSrv – Pfad zu lang Administrator
49 SymSrv – Fehlercode Administrator
90 Konflikt bei Sperre Bei Betrieb
100 Allgemeine kritische Nachricht Analytic
101 Allgemeine Fehlermeldung Analytic
102 Allgemeine Warnmeldung Analytic
103 Allgemeine Informationsmeldung Analytic
104 Allgemeine Analysenachricht Analytic
105 Allgemeine Debugmeldung Debuggen

Konfiguration des Symbolserverproxys

SymProxy speichert seine Konfigurationseinstellungen im folgenden Registrierungsschlüsselbereich:

HKLM/Software/Microsoft/Symbol Server Proxy

Von diesem Speicherort aus ruft SymProxy seine globalen Einstellungen und die Symbolpfade von Upstream Symbolspeichern ab.

Sie können diesen Schlüssel erstellen, indem Sie die Datei symproxy.reg zusammenführen, die Sie wie zuvor beschrieben angepasst haben.

Symbolserverproxyschlüssel

Der Proxyregistrierungsschlüssel des Symbolservers unterstützt die folgenden globalen Einstellungen (alle REG_DWORD). Einstellungen können live angewendet werden, indem der Anwendungspool wiederverwendet wird. Es wird ein neuer w3wp.exe Prozess erstellt, der die neuen Werte liest. Sobald alle ausstehenden Anforderungen an den alten w3wp.exe Prozess abgeschlossen sind, endet der alte w3wp.exe Prozess. IIS verwendet standardmäßig w3wp.exe Prozesse alle 1.740 Minuten (29 Stunden).

REG_DWORD BESCHREIBUNG
NoInternetProxy

Bei der Ausführung als Dienst verwendet SymSrv.dll WinHTTP anstelle von WinInet, um HTTP-Anforderungen zu senden. Daher müssen Sie möglicherweise HTTP-Proxyeinstellungen einrichten, damit der Dienst auf externe Netzwerkressourcen zugreifen kann. Dazu können Sie das Netsh-Programm verwenden. Geben Sie "netsh.exe winhttp -?" ein. .

Standardmäßig verwendet SymProxy den angegebenen HTTP-Proxy. Wenn kein HTTP-Proxy konfiguriert ist, verwendet SymProxy einen Dummyproxy. Dies ermöglicht den sicheren Zugriff auf HTTP-Websites in Ihrem Intranet. Als Nebeneffekt verhindert dies, dass SymProxy eine direkte Verbindung mit nicht sicheren Websites herstellt.

  • Nicht angegeben – (Standard) Deaktiviert – Proxy wird verwendet
  • 0 – deaktiviert
  • 1+ – Aktiviert

NoFilePointers

Standardmäßig sucht SymProxy für Symbole, die nicht vorhanden sind, nach einer datei.ptr-Datei neben der angeforderten Datei (im lokalen Cache). Wenn sie gefunden wird, wird der von der Datei file.ptr angegebene Speicherort zurückgegeben. Diese Fähigkeit ist nur erforderlich, wenn der lokale Cache von SymStore.exe aufgefüllt wird.

  • Nicht angegeben – (Standard) Deaktiviert– datei.ptr-Dateien werden nach/gelesen gesucht
  • 0 – deaktiviert
  • 1+ – Aktiviert

NoUncompress

Standardmäßig dekomprimiert SymProxy heruntergeladene Symbole, bevor die Datei an den Aufrufer zurückgegeben wird. Dadurch wird die CPU auf dem Client reduziert, aber die E/A erhöht.

  • Nicht angegeben – (Standard) Deaktiviert – Dekomprimierung tritt auf
  • 0 – deaktiviert
  • 1+ – Aktiviert

Nocache

Standardmäßig speichert SymProxy heruntergeladene Symbole im lokalen Dateisystem zwischen, das durch den Pfad des virtuellen Verzeichnisses definiert wird.

  • Nicht angegeben – (Standard) Deaktiviert – Zwischenspeicherung erfolgt
  • 0 – deaktiviert
  • 1+ – Aktiviert

MissTimeout

Timeoutzeitraum in Sekunden, für den fehlende Symbole als fehlend gemeldet werden, ohne die Upstream-Symbolserver erneut abfragen zu müssen.

Ein Fehler wird einer UTC-basierten Uhrzeit zugeordnet. Nachfolgende Anforderungen für die Datei werden sofort für N Sekunden abgelehnt.

Die erste Anforderung für die Datei nach N Sekunden bewirkt, dass die Upstream Symbolspeicher erneut abgefragt werden.

Bei Erfolg wird die Symboldatei zurückgegeben, und der Fehler wird gelöscht.

Bei einem Fehler wird der Fehler zur aktuellen Zeit (in UTC) verschoben, um einen neuen Timeoutzeitraum zu starten.

Verwenden Sie die Leistungsindikatoren "Miss Cache", um die Fehler zu überwachen.

  • Nicht angegeben – (Standard) 300 Sekunden/5 Minuten
  • 0 – Feature deaktiviert
  • N – Timeout dauert N Sekunden

MissAgeCheck

Zeitraum zwischen Miss Age-Überprüfungen. Der Fehlercache wird überprüft, und Datensätze, die älter als MissAgeTimeout-Sekunden sind, werden entfernt.

Die aktuellen Statistiken werden mithilfe der Ereignis-ID 4 im Ereignisprotokoll gespeichert.

  • Nicht angegeben : (Standard) 3600 Sekunden/1 Stunde
  • 0 – Feature deaktiviert
  • N – Zeitraum zwischen Überprüfungen in N Sekunden

MissAgeTimeout

Timeout für jeden Fehlercacheeintrag löschen. Der Eintrag wird aufgrund des Unsinns einer Anforderung für ihn während dieses Zeitraums gelöscht.

  • Nicht angegeben – (Standard) 86400 Sekunden/1 Tag
  • 0 – Feature deaktiviert
  • N – Timeout von Einträgen in N Sekunden

NoLongerIndexedAuthoritive

Wenn diese Option aktiviert ist, wird eine File.ptr-Antwort von NoLongerIndexed in allen Symbolspeichern als autoritiv behandelt.

Verwenden Sie diese Option, um (unnötige) Aufrufe von Servern zu vermeiden, die die Datei nicht indizieren.

  • Nicht angegeben– (Standard) Deaktiviert
  • 0 – deaktiviert
  • 1+ – Aktiviert

RetryAppHang

Aktivieren Sie Wiederholungsversuche für die Upstream HTTP-Symbolspeicher. Dies entspricht der Option symSrv SSRVOPT_RETRY_APP_HANG (0x80000000).

Beim Empfang eines 0x80070512/HRESULT_FROM_WIN32(ERROR_APP_HANG)-Fehlercodes über den HTTP-Antwortheader "Symbol-Agent-Status" aus einem Upstream HTTP-Symbolspeicher wird der Socket geöffnet gehalten, und die GET-Datei wird bis zu N-Mal wiederholt.

SymProxy vereint mehrere Anforderungen für denselben URI. Wenn eine ausstehende Anforderung 25 Sekunden erreicht, gibt SymProxy über den HTTP-Antwortheader "Symbol-Agent-Status" 0x80070512 an den Aufrufer zurück, setzt den Vorgang jedoch im Hintergrund fort.

Clients sollten die Option SSRVOPT_RETRY_APP_HANG in SymSrv aktivieren, sodass (extra) lange Anforderungen unterstützt werden– im Wesentlichen verkettet die Wiederholungsversuche Upstream.

SymProxy gibt das Antworttimeout standardmäßig auf 25 Sekunden an, sodass eine Antwort vor dem Schließen des Sockets bei dem (Standard-) 30-Sekunden-Timeout erfolgt, das SymSrv für HTTP-Symbolspeicher verwendet. Spätere Versionen von SymSrv senden den konfigurierten HTTP-Timeoutwert über den HTTP-Anforderungsheader "Symbol-Agent-Receive-Timeout" (in mSec). Wenn dieser HTTP-Anforderungsheader bereitgestellt wird, wird dieser Wert anstelle des Standardwerts von 25 Sekunden verwendet.

  • Nicht angegeben– (Standard) Deaktiviert
  • 0 – deaktiviert
  • N – Wiederholungsversuche

UriFilter

Aktivieren Sie die URI-Filterung. Dies entspricht der Option symSrv SSRVOPT_URI_FILTER (0x20000000).

Die URI-Filterung reduziert die Anzahl der Anforderungen an alle Upstream Symbolspeicher. Die Werte sind eine Bitmaske.

HTTP– SSRVURI_HTTP_MASK (0x0F)

  • 0x01 - SSRVURI_HTTP_NORMAL - z. B. http://symbols/.../foo.pdb
  • 0x02 - SSRVURI_HTTP_COMPRESSED - z. B. http://symbols/.../foo.pd_
  • 0x04 - SSRVURI_HTTP_FILEPTR - z. B. http://symbols/.../file.ptr

UNC – SSRVURI_UNC_MASK (0xF0)

  • 0x10 – SSRVURI_UNC_NORMAL – z. B. \\MyServer\Symbols\...\foo.pdb
  • 0x20 – SSRVURI_UNC_COMPRESSED – z. B. \\MyServer\Symbols\...\foo.pd_
  • 0x40 – SSRVURI_UNC_FILEPTR – z. B. \\MyServer\Symbols\...\file.ptr

UriTiers

Aktivieren Sie URI-Ebenen. Dies entspricht der Option symSrv SSRVOPT_URI_TIERS (0x40000000).

URI-Ebenen erzwingen das Ebenenschema, das von allen Upstream Symbolspeichern verwendet wird. Wenn sie nicht festgelegt ist, ist eine zusätzliche Anforderung erforderlich, um das Schema zu bestimmen. Die Existenz von "index2.txt" im Stamm weist auf ein Layout mit zwei Ebenen hin.

Speicher mit 1 Ebene haben das Format /widget.dll/<index>/widget.dll|widget.dl_|file.ptr

Speicher mit zwei Ebenen haben das Format /wi/widget.dll/<index>/widget.dll|widget.dl_|file.ptr

  • Nicht angegeben– (Standard) Deaktiviert
  • 0 – deaktiviert
  • 1 – 1-Schicht-Symbolspeicher
  • 2 – 2-Ebenen-Symbolspeicher

Zugreifen auf externe Netzwerkressourcen

Wenn SymSrv in Verbindung mit SymProxy verwendet wird, wird es als Dienst ausgeführt und verwendet die WinHTTP-API, um über eine HTTP-Verbindung auf Symbole zuzugreifen. Dies unterscheidet sich vom üblichen Verhalten der Verwendung von WinInet für diesen Zweck.

Daher müssen Sie möglicherweise HTTP-Proxyeinstellungen einrichten, damit dieser Dienst auf externe Netzwerkressourcen zugreifen kann. Verwenden Sie eine der folgenden Methoden, um diese Einstellungen zu konfigurieren:

  • Verwenden Sie das Netsh-Tool (netsh.exe). Um Anweisungen zu erhalten, geben Sie Folgendes in ein Eingabeaufforderungsfenster ein:

    netsh winhttp -? 
    

Das Standardverhalten von SymProxy besteht darin, jeden HTTP-Proxy zu verwenden, der entweder von ProxyCfg oder Netsh festgelegt wird. Wenn kein HTTP-Proxy konfiguriert ist, verwendet SymProxy einen Dummyproxy, um den Zugriff auf sichere HTTP-Websites in Ihrem Intranet zu ermöglichen. Als Nebeneffekt verhindert diese Technik, dass SymProxy mit direkten Verbindungen mit dem externen Internet arbeitet. Wenn Sie SymProxy erlauben möchten, mit einer direkten Verbindung mit dem Internet zu arbeiten, erstellen Sie einen REG_DWORD Wert namens NoInternetProxy im Symbolserver-Proxyschlüssel Ihrer Registrierung. Legen Sie den Wert von NoInternetProxy auf 1 fest, und vergewissern Sie sich, dass kein HTTP-Proxy von ProxyCfg angegeben ist.