Share via


Almacenes de símbolos HTTP

Mediante el uso del protocolo SRV admitido a través de symsrv.dll (incluido con el depurador), se puede acceder al almacén de símbolos mediante HTTP (en lugar de simplemente UNC/SMB).

HTTP se usa normalmente en lugar de SMB cuando un firewall no permite SMB entre el cliente y el servidor. Los entornos de producción y laboratorio son buenos ejemplos de esto.

Un servidor de símbolos HTTP no puede ser un almacén de bajada en una cadena de rutas de acceso de símbolos debido a su naturaleza de solo lectura. El proxy del servidor de símbolos (filtro ISAPI) funciona en torno a este límite. SymProxy descarga los archivos que faltan en el sistema de archivos del servidor mediante almacenes de símbolos ascendentes preconfigurados. El filtro descarga el archivo en el sistema de archivos, lo que permite que IIS descargue el archivo en el cliente, restaurando así el concepto de encadenamiento de almacén de símbolos. Consulte SymProxy para obtener más información.

La configuración de IIS como almacén de símbolos es relativamente fácil, ya que los archivos de símbolos solo se sirven como archivos estáticos. El único valor no predeterminado es la configuración de los tipos MIME para permitir la descarga de los archivos de símbolos como secuencias binarias. Esto se puede hacer mediante un carácter comodín "*" aplicado al directorio virtual de la carpeta de símbolos.

Para que un almacén de símbolos sea accesible a través de Internet, debe configurar los directorios que contienen los archivos de símbolos e Internet Information Services (IIS).

Nota Debido a la forma en que IIS se configurará para servir archivos de símbolos, no se recomienda usar la misma instancia de servidor para cualquier otro propósito. Normalmente, la configuración de seguridad deseada para un servidor de símbolos no tendrá sentido para otros usos, por ejemplo, para un servidor comercial orientado al exterior. Asegúrese de que la configuración de ejemplo que se describe aquí tiene sentido para su entorno y adaptarla según corresponda a sus necesidades específicas.

Creación del directorio de símbolos

Para empezar, seleccione el directorio que usará como almacén de símbolos. En nuestros ejemplos, llamamos a este directorio c:\symstore y el nombre del servidor en la red es \SymMachineName.

Para obtener más información sobre cómo rellenar el almacén de símbolos, consulte SymStore y Árbol de carpetas del almacén de símbolos.

Configuración de IIS

Internet Information Services (IIS) debe configurarse para servir los símbolos mediante la creación de un directorio virtual y la configuración de tipos MIME. Una vez hecho esto, se puede elegir el método de autenticación.

Para crear un directorio virtual

  1. Abra el Administrador de Internet Information Services (IIS) .

  2. Vaya a Sitios web.

  3. Haga clic con el botón derecho en Sitio web predeterminado o en el nombre del sitio que se va a usar y seleccione Agregar directorio virtual....

  4. Escriba Símbolos para Alias y haga clic en Siguiente.

    Para facilitar la administración, se recomienda usar el mismo nombre para la carpeta, el recurso compartido y el directorio virtual.

  5. En Ruta de acceso , escriba c:\SymStore y haga clic en Siguiente.

  6. Haga clic en Aceptar para finalizar la adición del directorio virtual.

Realice el proceso de configuración del subdirectorio una vez para el servidor. Tenga en cuenta que se trata de una configuración global y afectará a las aplicaciones que no se hospedan en la carpeta raíz de un sitio.

Configuración del subdirectorio

  1. Vaya a [Equipo].

  2. Abra el Editor de configuración.

  3. Vaya a ApplicationHost/sites del sistema.

  4. Expanda virtualDirectoryDefaults.

  5. Establezca allowSubDirConfig en False.

Realice este proceso una vez para el servidor. Tenga en cuenta que se trata de una configuración global y afectará a las aplicaciones que no se hospedan en la carpeta raíz de un sitio.

Opcional: Hacer que los archivos de símbolos se puedan examinar

  1. Vaya a [Equipo] | Sitios | [Sitio web] | Símbolos.

  2. Haga doble clic en Exploración de directorios en el panel central.

  3. Haga clic en Habilitar en el panel derecho.

El tipo MIME del contenido descargado debe establecerse en application/octet-stream para permitir que IIS entregue todos los archivos de símbolos.

Configuración de tipos MIME

  1. Haga clic con el botón derecho en el directorio virtual Símbolos y elija Propiedades.

  2. Seleccione Encabezados HTTP.

  3. Haga clic en Tipos MIME.

  4. Haga clic en Nueva.

  5. En Extensión, escriba *.

  6. Para el tipo MIME, escriba application/octet-stream.

  7. Para salir del cuadro de diálogo Tipos MIME , haga clic en Aceptar.

  8. Para salir de Propiedades de símbolos, haga clic en Aceptar.

Puede editar el archivo web.config para configurar tipos MIME para símbolos. Este enfoque borra los tipos MIME heredados y agrega un carácter comodín catch-all * MIME Type. Este enfoque puede ser necesario cuando se heredan tipos MIME en determinadas configuraciones de IIS.

Uso de web.config para configurar tipos MIME

  1. Edite el archivo web.config como se muestra aquí.

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <directoryBrowse enabled="true" />
            <staticContent>
                <clear />
                <mimeMap fileExtension=".*" 
    mimeType="application/octet-stream" />
            </staticContent>
        </system.webServer>
    </configuration>
    
  2. Reinicie IIS.

IIS ya está listo para servir archivos de símbolos de todos los tipos desde el almacén de símbolos.

Configuración de la autenticación

Es posible configurar IIS para que use "Autenticación integrada de Windows" para que los clientes (windbg.exe por ejemplo) se puedan autenticar automáticamente en IIS sin pedir al usuario final las credenciales.

Nota Configure solo la autenticación de Windows en IIS para controlar el acceso al servidor de símbolos si es adecuado para su entorno. Hay otras opciones de seguridad disponibles para controlar aún más el acceso a IIS si es necesario para su entorno.

Para configurar el método de autenticación como Anónimo

  1. Inicie el Administrador de Internet Information Services (IIS).

  2. Vaya a [Equipo] | Sitios | [Sitio web] | Símbolos.

  3. Haga doble clic en Autenticación en el panel central.

  4. En Autenticación y control de acceso , haga clic en Editar.

  5. Haga clic con el botón derecho en Autenticación de Windows y seleccione Habilitar.

  6. Para todos los demás proveedores de autenticación, haga clic con el botón derecho en cada proveedor y seleccione Deshabilitar.

  7. Haga clic en Aceptar para finalizar la configuración de la autenticación.

Si la autenticación de ventana no aparece en la lista, use Activar y desactivar las características de Windows para habilitar la característica. La ubicación de la característica es diferente en cada versión de Windows. En Windows 8.1/Windows 2012 R2, se encuentra en Internet Information Services | Servicios World Wide Web | Seguridad.

Deshabilitación de la compatibilidad con Kerberos

SymSrv.dll no admite la autenticación Kerberos al conectarse a IIS. Por lo tanto, la autenticación Kerberos debe estar deshabilitada en IIS y NTLM debe establecerse como el único protocolo de autenticación de Windows.

Nota Deshabilite solo la seguridad de Kerberos si es adecuada para su entorno.

Deshabilitación de la compatibilidad con Kerberos mediante appcmd.exe

  1. Abrir una ventana de símbolo del sistema

  2. Para deshabilitar Kerberos y forzar el uso de NTLM, use este comando:

    appcmd.exe set config -section:system.webServer/security/authentication/windowsAuthentication /+"providers.[value='NTLM']" /commit:apphost
    
  3. Para volver al valor predeterminado con Kerberos habilitado, use este comando:

    appcmd.exe set config -section:system.webServer/security/authentication/windowsAuthentication /+"providers.[value='Negotiate,NTLM']" /commit:apphost
    

Configuración de mensajes de autenticación de cliente SymSrv

Cuando SymSrv recibe solicitudes de autenticación, el depurador puede mostrar el cuadro de diálogo de autenticación o rechazar automáticamente la solicitud, en función de cómo se haya configurado. Puede configurar este comportamiento mediante !sym prompts on|off. Por ejemplo, para activar los mensajes, use este comando.

!sym prompts on

Para comprobar la configuración actual, use este comando.

!sym prompts

Para obtener más información, consulte !sym y Firewalls y servidores proxy.