Configuración del Registro
SymProxy almacena su configuración en esta clave del Registro.
HKLM/Software/Microsoft/Symbol Server Proxy
Esta clave del Registro controla la ubicación desde la que buscar símbolos para almacenar en el sitio web, el nivel de registro y si SymProxy funciona o no con una conexión directa a la red. Puede crear esta clave ejecutando la herramienta de registro SymProxy (Symproxy.reg) proporcionada con herramientas de depuración para Windows. Escriba symproxy.reg en el símbolo del sistema o haga doble clic en él desde el Explorador de Windows.
Esto agregará entradas para la configuración con el prefijo "x" para que se deshabiliten. Para habilitar una configuración, quite la "x" de delante de la configuración deseada.
[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
El archivo del registro symproxy.reg supone un nombre de directorio virtual de símbolos y configura la ruta de acceso de símbolos para usar el servidor de símbolos público de 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"
Las entradas de registro de eventos en symproxy.reg se tratan en la sección Registro de eventos de este tema.
[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
Las entradas del directorio web en symproxy.reg se describen en este tema.
Directorios web
Para cada directorio virtual generado en IIS que use como almacén de símbolos, debe configurar una clave del Registro debajo de la subclave Directorios web de la siguiente clave del Registro.
HKLM/Software/Microsoft/Symbol Server Proxy
Para editar la clave del Registro de un directorio virtual del almacén de símbolos
- Edite el contenido de SymbolPath para que contenga todos los almacenes de símbolos usados por el almacén de símbolos SymProxy. Si se usa más de un almacén de símbolos, separe con punto y coma. Se admite un máximo de 10 almacenes para cada valor. Las rutas de acceso HTTP deben incluir el prefijo https:// y las rutas de acceso UNC deben incluir el \\ prefijo.
Por ejemplo, si uno de los directorios virtuales se denomina Símbolos y los almacenes de símbolos a los que accede se encuentran en el almacén UNC \\symbols\symbols y el almacén https://msdl.microsoft.com/download/symbolsHTTP, cree la siguiente clave del Registro.
HKLM/Software/Microsoft/Symbol Server Proxy/Web Directories/Symbols
Una vez creada esta clave, edite su SymbolPath para que sea \\symbols\symbols;https://msdl.microsoft.com/download/symbols. Esto se puede ver en la siguiente captura de pantalla del Editor del Registro.
En este ejemplo, SymProxy busca primero símbolos en \\symbols\symbols. Si no se encuentran los archivos allí, se usará la Tienda de símbolos de Microsoft.
En cada una de las claves de directorios web que coinciden con los nombres de directorio virtual, es necesario crear un REG_SZ denominado SymbolPath. El valor contiene todos los almacenes de símbolos ascendentes que se usarán para rellenar el almacén de símbolos SymProxy.
Se admite un máximo de 10 entradas.
Entradas independientes con punto y coma.
Las rutas de acceso UNC deben incluir el prefijo "\\"
Las rutas de acceso HTTP deben incluir el prefijo "https://".
Ordene los valores de menos costosos a más caros.
Tendrá que equilibrar los objetivos de rendimiento del uso frente a los costos de comunicaciones de datos y de servidor en el cálculo.
En general, coloque los servidores SMB/HTTP locales antes que los servidores HTTP de Internet.
Contadores de rendimiento de SymProxy
SymProxy puede emitir contadores de rendimiento a través de un proveedor llamado SymProxy.
Para habilitar la compatibilidad con los contadores de rendimiento, registre el archivo de manifiesto symproxy en una ventana de comandos de administrador:
C:\> lodctr.exe /m:%WINDIR%\system32\inetsrv\symproxy.man
Para deshabilitar la compatibilidad con los contadores de rendimiento, anule el registro del manifiesto:
C:\> unlodctr.exe /m:%WINDIR%\system32\inetsrv\symproxy.man
Seguimiento de eventos SymProxy para Windows
SymProxy puede crear eventos ETW a través de un proveedor denominado Microsoft-Windows-SymProxy.
C:\> logman query providers | findstr SymProxy
Microsoft-Windows-SymProxy {0876099C-A903-47FF-AF14-52035BB479EF}
Para habilitar la compatibilidad con ETW, registre el archivo de manifiesto:
C:\> wevtutil.exe install-manifest %WINDIR%\system32\inetsrv\symproxy.man
Para deshabilitar la compatibilidad con ETW, anule el registro del archivo de manifiesto:
C:\> wevtutil.exe uninstall-manifest %WINDIR%\system32\inetsrv\symproxy.man
Registro de eventos
Si se configura ETW, los eventos se registran como eventos en los canales operativos y analíticos en Registros de aplicaciones y servicios\Microsoft\Windows\SymProxy en el registro de eventos.
Para ver correctamente el mensaje de las entradas del registro de eventos, el área Registro de eventos del archivo symproxy.reg debe agregarse al registro:
[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
Eventos SymProxy
SymProxy registra los siguientes eventos:
Identificador del evento | Descripción | Canal |
---|---|---|
1 | Inicio del filtro ISAPI | Administración |
2 | Detención del filtro ISAPI | Administración |
3 | Configuración del filtro ISAPI | Administrador |
4 | Estadísticas de caché perdidas | Administración |
10 | Solicitud de dirección URL: aciertos de caché local | Operativos |
11 | Solicitud de dirección URL: error de caché local | Operativos |
20 | Descarga de símbolos a través de SymSrv | Operativos |
30 | Falta el símbolo crítico | Administración |
31 | Falta la imagen crítica | Administración |
40 | SymSrv: ruta de acceso no encontrada | Administración |
41 | SymSrv: archivo no encontrado | Administración |
42 | SymSrv: acceso denegado | Administración |
43 | SymSrv: ruta demasiado larga | Administración |
49 | SymSrv: código de error | Administración |
90 | Contención de bloqueo | Operativos |
100 | Mensaje crítico general | Analíticos |
101 | Mensaje de error general | Analíticos |
102 | Mensaje de advertencia general | Analíticos |
103 | Mensaje informativo general | Analíticos |
104 | Mensaje de análisis general | Analíticos |
105 | Mensaje de depuración general | Depuración |
Configuración del proxy del servidor de símbolos
SymProxy almacena sus opciones de configuración en el siguiente área de clave del Registro:
HKLM/Software/Microsoft/Symbol Server Proxy
Desde esta ubicación, SymProxy adquiere su configuración global y las rutas de acceso de símbolos de los almacenes de símbolos ascendentes.
Puede crear esta clave combinando el archivo symproxy.reg que personalizaste como se explicó anteriormente.
Clave proxy del servidor de símbolos
La clave del Registro del proxy del servidor de símbolos admite la siguiente configuración global (todas las REG_DWORD). La configuración se puede aplicar en vivo reciclando el grupo de aplicaciones. Se creará un nuevo proceso de w3wp.exe y leerá los nuevos valores. Una vez completadas todas las solicitudes pendientes al proceso de w3wp.exe anterior, el proceso de w3wp.exe anterior finalizará. IIS se recicla de forma predeterminada w3wp.exe procesos cada 1740 minutos (29 horas).
REG_DWORD | Descripción |
NoInternetProxy | Al ejecutarse como servicio, SymSrv.dll usa WinHTTP en lugar de WinInet para realizar solicitudes HTTP. Por lo tanto, es posible que tenga que configurar la configuración del proxy HTTP para que el servicio pueda acceder a recursos de red externos. Puede hacerlo mediante el programa netsh. Escriba "netsh.exe winhttp -?" para obtener instrucciones. De forma predeterminada, SymProxy usa el proxy HTTP designado. Si no hay ningún proxy HTTP configurado, SymProxy usará un proxy ficticio. Esto permite el acceso seguro a sitios HTTP dentro de la intranet. Como efecto secundario, esto impide que SymProxy se conecte directamente a sitios no seguros.
|
NoFilePointers | De forma predeterminada, para los símbolos que no existen, SymProxy buscará un archivo file.ptr junto al archivo solicitado (en la memoria caché local). Si se encuentra, devolverá la ubicación especificada por el archivo file.ptr. Esta capacidad solo es necesaria cuando SymStore.exe rellena la memoria caché local.
|
NoUncompress | De forma predeterminada, SymProxy descomprimirá los símbolos descargados antes de devolver el archivo al autor de la llamada. Esto reduce la CPU en el cliente, pero aumenta la E/S.
|
NoCache | De forma predeterminada, SymProxy almacenará en caché los símbolos descargados en el sistema de archivos local, definido por la ruta de acceso del directorio virtual.
|
MissTimeout | Período de tiempo de espera, en segundos, para el que faltan símbolos que faltan sin volver a consultar los servidores de símbolos ascendentes. Un error está asociado a una hora basada en UTC. Las solicitudes posteriores del archivo se rechazan inmediatamente durante N segundos. La primera solicitud del archivo después de N segundos hace que se vuelvan a consultar los almacenes de símbolos ascendentes. Si se ejecuta correctamente, se devuelve el archivo de símbolos y se elimina la falta. Si se produce un error, el error se mueve a la hora actual (en UTC) para iniciar un nuevo período de tiempo de espera. Use los contadores de rendimiento "Miss Cache" para supervisar los errores.
|
MissAgeCheck | Período entre comprobaciones de edad de miss. La memoria caché de errores se examina y se quitan los registros anteriores a MissAgeTimeout segundos. Las estadísticas actuales se guardan en el registro de eventos mediante el identificador de evento 4.
|
MissAgeTimeout | Purga del tiempo de espera de cada entrada de caché de errores. La entrada se purga debido a la absense de cualquier solicitud durante este período.
|
NoLongerIndexedAuthoritive | Cuando se habilita, una respuesta file.ptr de NoLongerIndexed se tratará como autoritiva en todas las tiendas de símbolos. Úselo para evitar (innecesarias) llamadas a servidores que no indexar el archivo.
|
RetryAppHang | Habilite Reintentar en los almacenes de símbolos HTTP ascendentes. Esto equivale a la opción SymSrv SSRVOPT_RETRY_APP_HANG (0x80000000). En la recepción de un código de error de 0x80070512/HRESULT_FROM_WIN32(ERROR_APP_HANG) a través del encabezado de respuesta HTTP "Symbol-Agent-Status" de un almacén de símbolos HTTP ascendente, el socket se mantendrá abierto y el get se repetirá hasta "N" veces. SymProxy combina varias solicitudes para el mismo URI. Cuando cualquier solicitud pendiente alcanza los 25 segundos, SymProxy devolverá 0x80070512 al autor de la llamada a través de un encabezado de respuesta HTTP "Symbol-Agent-Status", pero continúa la operación en segundo plano. Los clientes deben habilitar la opción SSRVOPT_RETRY_APP_HANG en SymSrv para que se admitan (extra) solicitudes largas, en esencia encadenar el reintento ascendente. SymProxy tiene como valor predeterminado el tiempo de espera de respuesta en 25 segundos para que se realice una respuesta antes de que el socket se cierre en el tiempo de espera de 30 segundos (predeterminado) que SymSrv usa para los almacenes de símbolos HTTP. Las versiones posteriores de SymSrv envían su valor de tiempo de espera HTTP configurado a través del encabezado de solicitud HTTP "Symbol-Agent-Receive-Timeout" (en mSec). Si se proporciona este encabezado de solicitud HTTP, este valor se usa en lugar del valor predeterminado de 25 segundos.
|
UriFilter | Habilite el filtrado de URI. Esto equivale a la opción SymSrv SSRVOPT_URI_FILTER (0x20000000). El filtrado de URI reduce la variedad de solicitudes a todos los almacenes de símbolos ascendentes. Los valores son una máscara de bits. HTTP: SSRVURI_HTTP_MASK (0x0F)
UNC: SSRVURI_UNC_MASK (0xF0)
|
UriTiers | Habilite los niveles de URI. Esto equivale a la opción SymSrv SSRVOPT_URI_TIERS (0x40000000). Los niveles de URI fuerzan el esquema de nivel usado por todos los almacenes de símbolos ascendentes. Cuando no se establece, se requiere una solicitud adicional para determinar el esquema. La existencia de "index2.txt" en la raíz indica un diseño de 2 niveles. Los almacenes de 1 nivel tienen formato: /widget.dll/<index>/widget.dll|widget.dl_|file.ptr Los almacenes de 2 niveles están en formato: /wi/widget.dll/<index>/widget.dll|widget.dl_|file.ptr
|
Acceso a recursos de red externos
Cuando SymSrv se usa junto con SymProxy, se ejecuta como servicio y usa la API winHTTP para acceder a símbolos a través de una conexión HTTP. Esto difiere de su comportamiento habitual de usar WinInet para este propósito.
Por lo tanto, es posible que tenga que configurar la configuración del proxy HTTP para que este servicio pueda acceder a recursos de red externos. Use uno de los métodos siguientes para configurar estas opciones:
Use la herramienta Netsh (netsh.exe). Para obtener instrucciones, escriba lo siguiente en una ventana del símbolo del sistema:
netsh winhttp -?
El comportamiento predeterminado de SymProxy es usar cualquier proxy HTTP designado por ProxyCfg o Netsh. Si no hay ningún proxy HTTP configurado, SymProxy usa un proxy ficticio para permitir el acceso a sitios HTTP seguros dentro de la intranet. Como efecto secundario, esta técnica impide que SymProxy trabaje con conexiones directas a Internet externo. Si desea permitir que SymProxy funcione con una conexión directa a Internet, cree un valor de REG_DWORD denominado NoInternetProxy en la clave proxy del servidor de símbolos del registro. Establezca el valor de NoInternetProxy en 1 y compruebe que no hay ningún proxy HTTP indicado por ProxyCfg.