SymProxy

Você pode configurar seu repositório de símbolos baseado em HTTP para atuar como um proxy entre computadores cliente e outros repositórios de símbolos. A implementação é por meio de um filtro ISAPI (Internet Server Application Programming Interface) chamado SymProxy (Symproxy.dll). O servidor SymProxy pode ser usado como um computador de gateway para a Internet ou outras fontes na rede da empresa. O diagrama a seguir mostra um exemplo de configuração do SymProxy.

Diagrama mostrando um exemplo de configuração do SymProxy.

SymProxy é útil em muitas situações. Por exemplo:

  • Você está depurando muitos sistemas em um ambiente de laboratório no qual os computadores não estão anexados à rede da empresa, mas os símbolos são armazenados na rede e devem ser acessados usando a IWA (Autenticação Integrada do Windows).

  • Seu ambiente de computação corporativa inclui um firewall que impede o acesso à Internet de computadores que estão depurando e você deve obter símbolos de um site da Internet.

  • Você deseja apresentar um único caminho de símbolo para todos os usuários em sua empresa para que eles não precisem saber ou se preocupar com onde os símbolos estão localizados e você pode adicionar novos repositórios de símbolos sem intervenção do usuário.

  • Você tem um site remoto que está fisicamente longe do restante dos recursos da empresa e o acesso à rede está lento. Esse sistema pode ser usado para adquirir símbolos e armazená-los em cache no site remoto.

Para instalar o SymProxy, você deve copiar manualmente os arquivos para o local correto, configurar o registro, escolher credenciais de segurança de rede e configurar o IIS (Serviços de Informações da Internet). Para garantir que o repositório de símbolos HTTP esteja configurado corretamente, consulte Repositórios de Símbolos HTTP.

Considerações sobre o desempenho do servidor de vários símbolos

Cada Diretório Virtual pode ser associado a vários repositórios de símbolos (upstream). Cada repositório de símbolos é consultado de forma independente. Para obter desempenho, os servidores SMB locais devem ser processados antes dos servidores HTTP da Internet. Ao contrário de um caminho de símbolo do depurador, vários repositórios de símbolos HTTP podem ser especificados em um caminho de símbolo SymProxy. Há suporte para no máximo 10 entradas por Diretório Virtual.

Caminho do símbolo SymProxy

SymProxy divide o valor do caminho do símbolo (definido pelo registro) até as entradas individuais e usa cada entrada para gerar um caminho de símbolo baseado em SRV* para recuperar o arquivo. Ele usa a pasta do Diretório Virtual como o repositório downstream em cada uma das consultas – na verdade, mesclando o upstream armazena em um único repositório de símbolos downstream.

O caminho do símbolo (gerado) usado por SymProxy é equivalente a este:

SRV*<Virtual Directory Folder>*<SymbolPath Entry #N>

Neste exemplo, um caminho UNC e dois caminhos HTTP são associados a um Diretório Virtual para mesclar os símbolos de um servidor de símbolos corporativos, da Microsoft e de terceiros (Contoso). O SymbolPath SymProxy seria definido da seguinte maneira:

\\MainOffice\Symbols;https://msdl.microsoft.com/download/symbols;
https://symbols.contoso.com/symbols

O compartilhamento de arquivo símbolo do Escritório Principal é consultado primeiro usando um caminho de símbolo (gerado) de:

SRV*D:\SymStore\Symbols*\\MainOffice\Symbols

Se o arquivo de símbolo não for encontrado, o Repositório de Símbolos da Microsoft será consultado usando um caminho de símbolo (gerado) de:

SRV*D:\SymStore\Symbols*https://msdl.microsoft.com/download/symbols

Se o arquivo ainda não for encontrado, o Repositório (https://symbols.contoso.com/symbols) de Símbolos da Contoso será consultado usando um caminho de símbolo (gerado) de:

SRV*D:\SymStore\Symbols*https://symbols.contoso.com/symbols

Esta seção inclui:

Instalando o SymProxy

Configurando o Registro

Escolhendo credenciais de segurança de rede

Configurando o IIS para SymProxy

Configurando listas de exclusão

Lidando com repositórios de símbolos indisponíveis

Manipulando ponteiros de arquivo

Armazenando arquivos de símbolo adquiridos em cache