Configuration du Registre
SymProxy stocke ses paramètres dans cette clé de Registre.
HKLM/Software/Microsoft/Symbol Server Proxy
Cette clé de Registre contrôle l’emplacement à partir duquel rechercher les symboles à stocker dans le site Web, le niveau de journalisation et si SymProxy fonctionne avec une connexion directe au réseau. Vous pouvez créer cette clé en exécutant l’outil d’inscription SymProxy (Symproxy.reg) fourni avec outils de débogage pour Windows. Tapez symproxy.reg à l’invite de commandes ou double-cliquez dessus à partir de Windows Explorer.
Cela ajoute des entrées pour les paramètres qui seront précédés d’un « x » afin qu’ils soient désactivés. Pour activer un paramètre, supprimez le « x » devant le paramètre souhaité.
[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
Le fichier de Registre symproxy.reg suppose un nom de répertoire virtuel De symboles et configure le chemin d’accès des symboles pour utiliser le serveur de symboles publics 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"
Les entrées de journalisation des événements dans symproxy.reg sont traitées dans la section Journal des événements de cette rubrique.
[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
Les entrées de répertoire web dans symproxy.reg sont traitées dans cette rubrique.
Répertoires web
Pour chaque répertoire virtuel généré dans IIS que vous utilisez comme magasin de symboles, vous devez configurer une clé de Registre sous la sous-clé Répertoires web de la clé de Registre suivante.
HKLM/Software/Microsoft/Symbol Server Proxy
Pour modifier la clé de Registre d’un répertoire virtuel de magasin de symboles
- Modifiez le contenu de SymbolPath pour qu’il contienne tous les magasins de symboles utilisés par le magasin de symboles SymProxy. Si plusieurs magasins de symboles sont utilisés, séparez-les par des points-virgules. Un maximum de 10 magasins est pris en charge pour chaque valeur. Les chemins HTTP doivent inclure le préfixe https://, et les chemins UNC doivent inclure le \\ préfixe.
Par exemple, si l’un des répertoires virtuels est appelé Symboles et que les magasins de symboles auxquels il accède se trouvent dans le magasin UNC \\symbols\symbols et le magasin https://msdl.microsoft.com/download/symbolsHTTP , créez la clé de Registre suivante.
HKLM/Software/Microsoft/Symbol Server Proxy/Web Directories/Symbols
Une fois cette clé créée, modifiez son SymbolPath pour qu’il soit \\symbols\symbols ;https://msdl.microsoft.com/download/symbols. Vous pouvez le voir dans la capture d’écran suivante de l’Éditeur du Registre.
Dans cet exemple, SymProxy recherche d’abord des symboles dans \\symbols\symbols. Si les fichiers sont introuvables, le Magasin de symboles Microsoft est utilisé.
Dans chacune des clés sous Répertoires web qui correspondent aux noms de répertoire virtuel, un REG_SZ appelé SymbolPath doit être créé. La valeur contient tous les magasins de symboles amont qui seront utilisés pour remplir le magasin de symboles SymProxy.
Un maximum de 10 entrées sont prises en charge.
Séparez les entrées par des points-virgules.
Les chemins UNC doivent inclure le préfixe « \\ »
Les chemins HTTP doivent inclure le préfixe « https:// »
Commandez les valeurs du moins cher au plus cher.
Vous devez équilibrer les objectifs de performances d’utilisation par rapport aux coûts de communication de données et de serveur dans le calcul.
En général, placez les serveurs SMB/HTTP locaux avant les serveurs HTTP Internet.
Compteurs de performances SymProxy
SymProxy peut émettre des compteurs de performances via un fournisseur appelé SymProxy.
Pour activer la prise en charge des compteurs de performances, inscrivez le fichier manifeste symproxy dans une fenêtre de commande administrateur :
C:\> lodctr.exe /m:%WINDIR%\system32\inetsrv\symproxy.man
Pour désactiver la prise en charge des compteurs de performances, annulez l’inscription du manifeste :
C:\> unlodctr.exe /m:%WINDIR%\system32\inetsrv\symproxy.man
Suivi d’événements SymProxy pour Windows
SymProxy peut créer des événements ETW via un fournisseur appelé Microsoft-Windows-SymProxy.
C:\> logman query providers | findstr SymProxy
Microsoft-Windows-SymProxy {0876099C-A903-47FF-AF14-52035BB479EF}
Pour activer la prise en charge d’ETW, inscrivez le fichier manifeste :
C:\> wevtutil.exe install-manifest %WINDIR%\system32\inetsrv\symproxy.man
Pour désactiver la prise en charge d’ETW, annulez l’inscription du fichier manifeste :
C:\> wevtutil.exe uninstall-manifest %WINDIR%\system32\inetsrv\symproxy.man
Journal des événements
Si ETW est configuré, les événements sont enregistrés en tant qu’événements dans les canaux opérationnels et analytiques sous Journaux des applications et des services\Microsoft\Windows\SymProxy dans le journal des événements.
Pour afficher correctement le message des entrées du journal des événements, la zone Journal des événements du fichier symproxy.reg doit être ajoutée au Registre :
[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
Événements SymProxy
SymProxy journalise les événements suivants :
ID d'événement | Description | Channel |
---|---|---|
1 | Début du filtre ISAPI | Admin |
2 | Arrêt du filtre ISAPI | Admin |
3 | Configuration du filtre ISAPI | Admin |
4 | Statistiques de cache manquées | Admin |
10 | Requête d’URL - Accès au cache local | En fonctionnement |
11 | Requête d’URL - Absence du cache local | En fonctionnement |
20 | Téléchargement du symbole via SymSrv | En fonctionnement |
30 | Symbole critique manquant | Admin |
31 | Image critique manquante | Admin |
40 | Symsrv : chemin introuvable | Admin |
41 | SymSrv – Fichier introuvable | Admin |
42 | SymSrv – Accès refusé | Admin |
43 | SymSrv – Chemin trop long | Admin |
49 | SymSrv – Code d’erreur | Admin |
90 | Contention de verrouillage | En fonctionnement |
100 | Message critique général | Analytiques |
101 | Message d’erreur général | Analytiques |
102 | Message d’avertissement général | Analytiques |
103 | Message d’information général | Analytiques |
104 | Message analytique général | Analytiques |
105 | Message de débogage général | Débogage |
Configuration du proxy du serveur de symboles
SymProxy stocke ses paramètres de configuration dans la zone de clé de Registre suivante :
HKLM/Software/Microsoft/Symbol Server Proxy
À partir de cet emplacement, SymProxy acquiert ses paramètres globaux et les chemins d’accès aux symboles de amont magasins de symboles.
Vous pouvez créer cette clé en fusionnant dans le fichier symproxy.reg que vous avez personnalisé, comme indiqué précédemment.
Clé proxy du serveur de symboles
La clé de Registre proxy symbol server prend en charge les paramètres globaux suivants (tous REG_DWORD). Les paramètres peuvent être appliqués en direct en recyclant le pool d’applications. Un nouveau processus w3wp.exe sera créé et il lira les nouvelles valeurs. Une fois que toutes les demandes en attente adressées à l’ancien processus de w3wp.exe sont terminées, l’ancien processus w3wp.exe se termine. PAR défaut, IIS recycle w3wp.exe processus toutes les 1 740 minutes (29 heures).
REG_DWORD | Description |
NoInternetProxy | Lors de l’exécution en tant que service, SymSrv.dll utilise WinHTTP au lieu de WinInet pour effectuer des requêtes HTTP. Par conséquent, vous devrez peut-être configurer des paramètres de proxy HTTP afin que le service puisse accéder aux ressources réseau externes. Pour ce faire, utilisez le programme netsh. Tapez « netsh.exe winhttp - ? » pour obtenir des instructions. Par défaut, SymProxy utilise le proxy HTTP désigné. Si aucun proxy HTTP n’est configuré, SymProxy utilise un proxy factice. Cela permet un accès sécurisé aux sites HTTP au sein de votre intranet. Comme effet secondaire, cela empêche SymProxy de se connecter directement à des sites non sécurisés.
|
NoFilePointers | Par défaut, pour les symboles qui n’existent pas, SymProxy recherche un fichier file.ptr en regard du fichier demandé (dans le cache local). S’il est trouvé, il retourne l’emplacement spécifié par le fichier file.ptr. Cette fonctionnalité n’est requise que lorsque le cache local est rempli par SymStore.exe.
|
NoUncompress | Par défaut, SymProxy décompresse les symboles téléchargés avant de renvoyer le fichier à l’appelant. Cela réduit le processeur au niveau du client, mais augmente les E/S.
|
NoCache | Par défaut, SymProxy met en cache les symboles téléchargés dans le système de fichiers local, défini par le chemin d’accès du répertoire virtuel.
|
MissTimeout | Période d’expiration, en secondes, pour laquelle les symboles manquants sont signalés comme manquants sans interroger à nouveau les serveurs de symboles amont. Une erreur est associée à une heure UTC. Les demandes suivantes pour le fichier sont immédiatement rejetées pendant N secondes. La première requête du fichier après N secondes entraîne la nouvelle interrogation des magasins de symboles amont. En cas de réussite, le fichier de symboles est retourné et l’erreur est supprimée. En cas d’échec, l’absence est déplacée vers l’heure actuelle (en UTC) pour commencer une nouvelle période de délai d’expiration. Utilisez les compteurs de performances « Miss Cache » pour surveiller les erreurs.
|
MissAgeCheck | Période entre les vérifications d’âge manqué. Le cache Miss est analysé et les enregistrements antérieurs à MissAgeTimeout secondes sont supprimés. Les statistiques actuelles sont enregistrées dans le journal des événements à l’aide de l’ID d’événement 4.
|
MissAgeTimeout | Purgez le délai d’expiration de chaque entrée de cache Miss. L’entrée est vidée en raison de l’absense de toute demande pendant cette période.
|
NoLongerIndexedAuthoritive | Lorsque cette option est activée, une réponse file.ptr de NoLongerIndexed est traitée comme une autorisation dans tous les magasins de symboles. Utilisez cette option pour éviter les appels (inutiles) aux serveurs qui n’indexent pas le fichier.
|
RéessayerAppHang | Activez Réessayer dans les magasins de symboles HTTP amont. Cela équivaut à l’option SymSrv SSRVOPT_RETRY_APP_HANG (0x80000000). À la réception d’un code d’erreur 0x80070512/HRESULT_FROM_WIN32(ERROR_APP_HANG) via l’en-tête de réponse HTTP « Symbol-Agent-Status » à partir d’un magasin de symboles HTTP amont, le socket reste ouvert et le GET est répété jusqu’à « N ». SymProxy fusionne plusieurs requêtes pour le même URI. Quand une requête en attente atteint 25 secondes, SymProxy retourne 0x80070512 à l’appelant via un en-tête de réponse HTTP « Symbol-Agent-Status », mais continue l’opération en arrière-plan. Les clients doivent activer l’option SSRVOPT_RETRY_APP_HANG dans SymSrv afin que les demandes (extra) longues soient prises en charge, en chaînant essentiellement la nouvelle tentative amont. SymProxy prend par défaut le délai d’expiration de la réponse sur 25 secondes, de sorte qu’une réponse est effectuée avant la fermeture du socket au délai d’attente (par défaut) de 30 secondes utilisé par SymSrv pour les magasins de symboles HTTP. Les versions ultérieures de SymSrv envoient leur valeur de délai d’attente HTTP configurée via l’en-tête de requête HTTP « Symbol-Agent-Receive-Timeout » (en mSec). Si cet en-tête de requête HTTP est fourni, cette valeur est utilisée au lieu de la valeur par défaut de 25 secondes.
|
UriFilter | Activez le filtrage d’URI. Cela équivaut à l’option SymSrv SSRVOPT_URI_FILTER (0x20000000). Le filtrage d’URI réduit la variété des requêtes à tous les magasins de symboles amont. Les valeurs sont un masque de bits. HTTP - SSRVURI_HTTP_MASK (0x0F)
UNC - SSRVURI_UNC_MASK (0xF0)
|
UriTiers | Activez les niveaux d’URI. Cela équivaut à l’option SymSrv SSRVOPT_URI_TIERS (0x40000000). Les niveaux d’URI forcent le schéma de niveau utilisé par tous les magasins de symboles amont. Lorsqu’elle n’est pas définie, une demande supplémentaire est nécessaire pour déterminer le schéma. L’existence de « index2.txt » à la racine indique une disposition à 2 niveaux. Les magasins à 1 niveau sont au format : /widget.dll/<index>/widget.dll|widget.dl_|file.ptr Les magasins à 2 niveaux sont au format : /wi/widget.dll/<index>/widget.dll|widget.dl_|file.ptr
|
Accès aux ressources réseau externes
Lorsque SymSrv est utilisé conjointement avec SymProxy, il s’exécute en tant que service et utilise l’API WinHTTP pour accéder aux symboles via une connexion HTTP. Cela diffère de son comportement habituel d’utilisation de WinInet à cet effet.
Par conséquent, vous devrez peut-être configurer les paramètres de proxy HTTP afin que ce service puisse accéder aux ressources réseau externes. Utilisez l’une des méthodes suivantes pour configurer ces paramètres :
Utilisez l’outil Netsh (netsh.exe). Pour obtenir des instructions, tapez ce qui suit dans une fenêtre d’invite de commandes :
netsh winhttp -?
Le comportement par défaut de SymProxy consiste à utiliser n’importe quel proxy HTTP désigné par ProxyCfg ou Netsh. Si aucun proxy HTTP n’est configuré, SymProxy utilise un proxy factice pour autoriser l’accès aux sites HTTP sécurisés au sein de votre intranet. En guise d’effet secondaire, cette technique empêche SymProxy de fonctionner avec des connexions directes à l’Internet externe. Si vous souhaitez autoriser SymProxy à fonctionner avec une connexion directe à Internet, créez une valeur REG_DWORD nommée NoInternetProxy dans la clé symbol server proxy de votre registre. Définissez la valeur de NoInternetProxy sur 1 et vérifiez qu’aucun proxy HTTP n’est indiqué par ProxyCfg.