Delen via


Het register configureren

SymProxy slaat de instellingen op in deze registersleutel.

HKLM/Software/Microsoft/Symbol Server Proxy

Deze registersleutel bepaalt de locatie van waaruit symbolen moeten worden gevonden die moeten worden opgeslagen op de website, het logboekregistratieniveau en of SymProxy werkt met een directe verbinding met het netwerk. U kunt deze sleutel maken door het hulpprogramma voor SymProxy-registratie (Symproxy.reg) uit te voeren dat is geleverd met hulpprogramma's voor foutopsporing voor Windows. Typ symproxy.reg bij de opdrachtprompt of dubbelklik erop vanuit Windows Verkenner.

Hiermee worden vermeldingen toegevoegd voor de instellingen die worden voorafgegaan door een 'x' zodat ze worden uitgeschakeld. Als u een instelling wilt inschakelen, verwijdert u de 'x' vóór de gewenste instelling.

[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

In het symproxy.reg registerbestand wordt ervan uitgegaan dat er een virtuele mapnaam van Symbolen wordt gebruikt en wordt het symboolpad geconfigureerd voor het gebruik van de openbare symboolserver van Microsoft.

[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"

De vermeldingen voor gebeurtenislogboeken in symproxy.reg worden verderop in dit onderwerp behandeld in het gedeelte Gebeurtenislogboek.

[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

De webdirectory-vermeldingen in symproxy.reg worden in dit artikel besproken.

webgidsen

Voor elke virtuele map die wordt gegenereerd in IIS die u als symboolarchief gebruikt, moet u een registersleutel instellen onder de Webmappen subsleutel van de volgende registersleutel.

HKLM/Software/Microsoft/Symbol Server Proxy

De registersleutel voor een virtuele map voor een symbolenopslag aanpassen

  • Bewerk de inhoud van SymbolPath om alle symboolarchieven te bevatten die worden gebruikt door het symproxy-symboolarchief. Als er meer dan één symboolarchief wordt gebruikt, scheid deze met puntkomma's. Er worden maximaal 10 winkels ondersteund voor elke waarde. HTTP-paden moeten het https:// voorvoegselbevatten en UNC-paden moeten het \\ voorvoegsel bevatten.

Als een van de virtuele mappen bijvoorbeeld Symbolen wordt genoemd en de symbolen die toegankelijk zijn zich in het UNC-archief \\symbols\symbols en het HTTP-archief https://msdl.microsoft.com/download/symbolsbevinden, maakt u de volgende registersleutel aan.

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

Nadat deze sleutel is gemaakt, bewerkt u de SymbolPath- naar \\symbols\symbols;https://msdl.microsoft.com/download/symbols. Dit is te zien in de volgende schermopname van de Register-editor.

schermopname van de Register-editor met een bijgewerkte SymbolPath.

In dit voorbeeld zoekt SymProxy eerst naar symbolen in \\symbols\symbols. Als de bestanden daar niet worden gevonden, wordt de Microsoft Symbol Store gebruikt.

  • In elk van de sleutels onder Webmappen die overeenkomen met de namen van de virtuele map, moet er een REG_SZ met de naam SymbolPath worden gemaakt. De waarde bevat alle upstream-symboolarchieven die worden gebruikt om het SymProxy-symboolarchief te vullen.

  • Er worden maximaal 10 vermeldingen ondersteund.

  • Afzonderlijke vermeldingen met puntkomma's.

  • UNC-paden moeten het voorvoegsel \\bevatten

  • HTTP-paden moeten het voorvoegsel 'https://' bevatten

  • Rangschik de waarden van minst duur naar meest duur.

    • In de berekening moet u de doelstellingen van de gebruiksprestaties en de kosten voor server- en gegevenscommunicatie in balans houden.

    • Over het algemeen plaatst u lokale SMB-/HTTP-servers vóór internet-HTTP-servers.

SymProxy-prestatiecounters

SymProxy kan prestatiemeteritems verzenden via een provider met de naam SymProxy.

Als u de ondersteuning voor prestatiemeteritems wilt inschakelen, registreert u het symproxy-manifestbestand in een beheerdersopdrachtvenster:

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

Als u de ondersteuning voor prestatiemeteritems wilt uitschakelen, moet u de registratie van het manifest ongedaan maken:

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

SymProxy-gebeurtenistracering voor Windows

SymProxy kan ETW-gebeurtenissen maken via een provider met de naam Microsoft-Windows-SymProxy.

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

Registreer het manifestbestand om de ETW-ondersteuning in te schakelen:

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

Als u de ETW-ondersteuning wilt uitschakelen, moet u de registratie van het manifestbestand ongedaan maken:

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

gebeurtenislogboek

Als ETW is geconfigureerd, worden de gebeurtenissen vastgelegd als gebeurtenissen in de Operationele en Analytische kanalen onder Toepassingen en Services-logboeken\Microsoft\Windows\SymProxy in het gebeurtenislogboek.

Als u het bericht van de vermeldingen in het gebeurtenislogboek correct wilt weergeven, moet het gebied Gebeurtenislogboek van het symproxy.reg-bestand worden toegevoegd aan het register:

[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 Gebeurtenissen

SymProxy registreert de volgende gebeurtenissen:

Gebeurtenis-id Beschrijving -kanaal
1 Begin van het ISAPI-filter Admin
2 Stoppen van het ISAPI-filter Admin
3 Configuratie van het ISAPI-filter Admin
4 Statistieken van Miss Cache Admin
10 URL-aanvraag - Lokale cachetreffer Operationeel
11 URL-aanvraag - Miss lokale cache Operationeel
20 Symbool downloaden via SymSrv Operationeel
30 Kritiek symbool ontbreekt Admin
31 Kritieke afbeelding ontbreekt Admin
40 SymSrv - Pad niet gevonden Admin
41 SymSrv - Bestand niet gevonden Admin
42 SymSrv – Toegang geweigerd Admin
43 SymSrv – Pad te lang Admin
49 SymSrv – Foutcode Admin
90 Conflicten vergrendelen Operationeel
100 Algemeen kritisch bericht Analytisch
101 Algemeen foutbericht Analytisch
102 Algemeen waarschuwingsbericht Analytisch
103 Algemeen informatiebericht Analytisch
104 Algemeen analytisch bericht Analytisch
105 Algemeen foutopsporingsbericht Fouten opsporen

Symboolserver-Proxyconfiguratie

SymProxy slaat de configuratie-instellingen op in het volgende registersleutelgebied:

HKLM/Software/Microsoft/Symbol Server Proxy

Vanaf deze locatie verkrijgt SymProxy de globale instellingen en de symboolpaden van upstream-symboolarchieven.

U kunt deze sleutel maken door samen te voegen in het symproxy.reg bestand dat u hebt aangepast zoals eerder is besproken.

Proxysleutel voor Symboolserver

De registersleutel symbolserverproxy ondersteunt de volgende algemene instellingen (alle REG_DWORD). Instellingen kunnen live worden toegepast door de groep toepassingen te recyclen. Een nieuw w3wp.exe proces zal worden gecreëerd en het zal de nieuwe waarden lezen. Zodra alle aanvragen die in behandeling zijn bij het oude w3wp.exe proces zijn voltooid, wordt het oude w3wp.exe proces beëindigd. IIS recyclet standaard w3wp.exe processen elke 1740 minuten (29 uur).

REG_DWORD Beschrijving
NoInternetProxy

Wanneer u als een service uitvoert, gebruikt SymSrv.dll WinHTTP in plaats van WinInet om HTTP-aanvragen te maken. Daarom moet u mogelijk HTTP-proxyinstellingen instellen, zodat de service toegang heeft tot externe netwerkbronnen. U kunt dit doen met behulp van het netsh-programma. Typ “netsh.exe winhttp -?” voor instructies.

SymProxy maakt standaard gebruik van de aangewezen HTTP-proxy. Als er geen HTTP-proxy is geconfigureerd, gebruikt SymProxy een dummy-proxy. Hierdoor is beveiligde toegang tot HTTP-sites binnen uw intranet mogelijk. Als neveneffect voorkomt dit dat SymProxy rechtstreeks verbinding maakt met niet-beveiligde sites.

  • Niet opgegeven - (standaard) uitgeschakeld - Proxy wordt gebruikt
  • 0 – Uitgeschakeld
  • 1+ – ingeschakeld

NoFilePointers

Voor symbolen die niet bestaan, zoekt SymProxy standaard naar een bestand.ptr-bestand naast het aangevraagde bestand (in de lokale cache). Als deze wordt gevonden, wordt de locatie geretourneerd die is opgegeven door het bestand.ptr. Deze mogelijkheid is alleen vereist wanneer de lokale cache wordt gevuld door SymStore.exe.

  • Niet opgegeven - (standaard) Uitgeschakeld - file.ptr-bestanden worden gezocht/gelezen
  • 0 – Uitgeschakeld
  • 1+ – ingeschakeld

NoUncompress

Standaard worden door SymProxy gedownloade symbolen gedecomprimeerd voordat het bestand naar de aanroeper wordt geretourneerd. Dit vermindert de CPU op de client, maar verhoogt de I/O.

  • Niet opgegeven - (standaard) Uitgeschakeld - Decompressie vindt plaats
  • 0 – Uitgeschakeld
  • 1+ – ingeschakeld

GeenCache

SymProxy slaat standaard gedownloade symboolbestanden op in de cache van het lokale bestandssysteem, zoals aangegeven door het pad van de virtuele directory.

  • Niet opgegeven - (standaard) uitgeschakeld - Caching vindt plaats
  • 0 – Uitgeschakeld
  • 1+ – ingeschakeld

MissTimeout

Time-outperiode, in seconden, waarin ontbrekende symbolen worden gerapporteerd als ontbrekend zonder de upstream-symboolservers opnieuw te bevragen.

Een gemiste kans is gekoppeld aan een UTC-tijd. Volgende aanvragen voor het bestand worden onmiddellijk geweigerd voor N seconden.

De eerste aanvraag voor het bestand na N seconden zorgt ervoor dat de upstream-symboolarchieven opnieuw worden opgevraagd.

Bij succes wordt het symboolbestand geretourneerd en wordt het gemiste bestand verwijderd.

Bij een fout wordt de miss naar de huidige tijd (in UTC) verplaatst om een nieuwe time-outperiode te starten.

Gebruik de prestatiemeters 'Miss Cache' om de misses te monitoren.

  • Niet opgegeven - (standaard) 300 seconden/5 minuten
  • 0 – Functie uitgeschakeld
  • N – Time-out duurt N seconden

MissAgeCheck

Periode tussen leeftijdscontroles. De Miss-cache wordt gescand en records die ouder zijn dan MissAgeTimeout seconden worden verwijderd.

De huidige statistieken worden opgeslagen in het gebeurtenislogboek met behulp van gebeurtenis-id 4.

  • Niet opgegeven - (standaard) 3600 seconden / 1 uur
  • 0 – Functie uitgeschakeld
  • N – Periode tussen controles in N seconden

MissAgeTimeout

Opschoning van de time-out van elke miss-cache item. De vermelding is gedurende deze periode verwijderd vanwege het ontbreken van een verzoek ervoor.

  • Niet opgegeven - (standaard) 86400 seconden / 1 dag
  • 0 – Functie uitgeschakeld
  • N: Time-out van vermeldingen in N seconden

NietMeerGeïndexeerdGezaghebbend

Wanneer deze optie is ingeschakeld, wordt een file.ptr-antwoord van NoLongerIndexed als gezaghebbend behandeld in alle symboolarchieven.

Gebruik deze optie om (onnodige) aanroepen naar servers te voorkomen die het bestand niet indexeren.

  • Niet opgegeven - (standaard) uitgeschakeld
  • 0 – Uitgeschakeld
  • 1+ – ingeschakeld

Opnieuw proberenAppHang

Schakel opnieuw proberen in voor de upstream HTTP-symboolopslaglocaties. Dit komt overeen met de optie SymSrv SSRVOPT_RETRY_APP_HANG (0x80000000).

Bij ontvangst van een 0x80070512/HRESULT_FROM_WIN32(ERROR_APP_HANG) foutcode via de HTTP-antwoordheader 'Symbol-Agent-Status' van een upstream HTTP Symbol Store, wordt de socket opengehouden en wordt de GET tot 'N' keer herhaald.

SymProxy samenvoudt meerdere aanvragen voor dezelfde URI. Wanneer een aanvraag die in behandeling is 25 seconden heeft bereikt, retourneert SymProxy 0x80070512 naar de aanroeper via een HTTP-antwoordheader 'Symbol-Agent-Status', maar de bewerking wordt op de achtergrond voortgezet.

Clients moeten de optie SSRVOPT_RETRY_APP_HANG in SymSrv inschakelen, zodat (extra) lange aanvragen worden ondersteund, in wezen het koppelen van de nieuwe poging upstream.

SymProxy geeft standaard de time-out van de reactie aan op 25 seconden, zodat een antwoord wordt gemaakt voordat de socket wordt gesloten bij de (standaard) time-out van 30 seconden die SymSrv gebruikt voor HTTP Symbol Stores. Nieuwere versies van SymSrv verzenden de geconfigureerde HTTP-time-outwaarde via de HTTP-verzoekheader 'Symbol-Agent-Receive-Timeout' (in milliseconden). Als deze HTTP-aanvraagheader wordt opgegeven, wordt deze waarde gebruikt in plaats van de standaardwaarde van 25 seconden.

  • Niet opgegeven - (standaard) uitgeschakeld
  • 0 – Uitgeschakeld
  • N : nieuwe pogingen

UriFilter

URI-filtering inschakelen. Dit komt overeen met de optie SymSrv SSRVOPT_URI_FILTER (0x20000000).

URI-filtering vermindert de verscheidenheid aan verzoeken naar alle upstream-symboolopslagplaatsen . De waarden zijn een bitmasker.

HTTP - SSRVURI_HTTP_MASK (0x0F)

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

UNC - SSRVURI_UNC_MASK (0xF0)

  • 0x10 - SSRVURI_UNC_NORMAL - bijvoorbeeld \\MyServer\Symbols\...\foo.pdb
  • 0x20 - SSRVURI_UNC_COMPRESSED - bijvoorbeeld \\MyServer\Symbols\...\foo.pd_
  • 0x40 - SSRVURI_UNC_FILEPTR - bijvoorbeeld \\MyServer\Symbols\...\file.ptr

UriTiers

URI-lagen inschakelen. Dit komt overeen met de optie SymSrv SSRVOPT_URI_TIERS (0x40000000).

URI-lagen dwingt het laagschema af dat wordt gebruikt door alle upstream symboolarchieven. Wanneer deze niet is ingesteld, is een extra aanvraag vereist om het schema te bepalen. Het bestaan van 'index2.txt' in de rootmap duidt op een 2-laags structuur.

1-laag winkels hebben een indeling: /widget.dll/<index>/widget.dll|widget.dl_|file.ptr

2-laags winkels zijn in indeling: /wi/widget.dll/<index>/widget.dll|widget.dl_|file.ptr

  • Niet opgegeven - (standaard) uitgeschakeld
  • 0 – Uitgeschakeld
  • 1 – 1-laags symboolopslagplaatsen
  • 2 – 2-laags symboolopslag

toegang tot externe netwerkbronnen

Wanneer SymSrv wordt gebruikt in combinatie met SymProxy, wordt deze uitgevoerd als een service en wordt de WinHTTP-API gebruikt voor toegang tot symbolen via een HTTP-verbinding. Dit verschilt van het gebruikelijke gedrag van het gebruik van WinInet voor dit doel.

Daarom moet u mogelijk HTTP-proxyinstellingen instellen, zodat deze service toegang heeft tot externe netwerkbronnen. Gebruik een van de volgende methoden om deze instellingen te configureren:

  • Gebruik het hulpprogramma Netsh (netsh.exe). Typ het volgende in een opdrachtpromptvenster voor instructies:

    netsh winhttp -? 
    

Het standaardgedrag van SymProxy is het gebruik van elke HTTP-proxy die wordt aangewezen door ProxyCfg of Netsh. Als er geen HTTP-proxy is geconfigureerd, gebruikt SymProxy een dummy-proxy om toegang te verlenen tot beveiligde HTTP-sites binnen uw intranet. Als neveneffect voorkomt deze techniek dat SymProxy werkt met directe verbindingen met het externe internet. Als u wilt toestaan dat SymProxy werkt met een directe verbinding met internet, maakt u een REG_DWORD waarde met de naam NoInternetProxy in de Symboolserverproxy sleutel van uw register. Stel de waarde van NoInternetProxy in op 1 en controleer of er geen HTTP-proxy is aangegeven door ProxyCfg.