Compartilhar via


Repositórios de símbolos HTTP

Ao usar o protocolo SRV com suporte por symsrv.dll (fornecido com o depurador), o repositório de símbolos pode ser acessado usando HTTP (em vez de apenas UNC/SMB).

HTTP é comumente usado em vez de SMB quando um firewall não permite SMB entre o cliente e o servidor. Os ambientes de Produção e Laboratório são bons exemplos disso.

Um servidor de símbolos HTTP não pode ser um armazenamento downstream em uma cadeia de caminhos de símbolos devido à sua natureza somente leitura. O Proxy do Servidor de Símbolos (Filtro ISAPI) funciona em torno desse limite. O SymProxy baixa os arquivos ausentes para o sistema de arquivos do servidor usando repositórios de símbolos upstream pré-configurados. O filtro baixa o arquivo para o sistema de arquivos, permitindo que o IIS baixe o arquivo para o cliente, restaurando assim o conceito de encadeamento de repositório de símbolos. Veja SymProxy para obter mais informações.

Configurar o IIS como um repositório de símbolos é relativamente fácil, pois os arquivos de símbolo são fornecidos apenas como arquivos estáticos. A única configuração não padrão é a configuração dos Tipos MIME para permitir o download dos arquivos de símbolo como fluxos binários. Isso pode ser feito usando um caractere curinga "*" aplicado ao diretório virtual da pasta de símbolos.

Para tornar um repositório de símbolos acessível pela Internet, você deve configurar os diretórios que contêm os arquivos de símbolo e o IIS (Serviços de Informações da Internet).

Observação Devido à maneira como o IIS será configurado para fornecer arquivos de símbolo, não é recomendável que a mesma instância do servidor seja usada para nenhuma outra finalidade. Geralmente, as configurações de segurança desejadas para um servidor de símbolos não farão sentido para outros usos, por exemplo, para um servidor comercial externo. Verifique se a configuração de exemplo descrita aqui faz sentido para seu ambiente e adapte-a conforme apropriado para suas necessidades específicas.

Criar o diretório de símbolos

Comece selecionando o diretório que você usará como o repositório de símbolos. Em nossos exemplos, chamamos esse diretório de c:\symstore e o nome do servidor na rede é \SymMachineName.

Para obter detalhes sobre como preencher o repositório de símbolos, confira SymStore e Árvore de pastas do repositório de símbolos.

Configuração do IIS

Os Serviços de Informações da Internet (IIS) devem ser configurados para fornecer os símbolos criando um diretório virtual e configurando tipos MIME. Depois disso, é possível escolher o método de autenticação.

Para criar um diretório virtual

  1. Abra o Gerenciador do IIS (Serviços de Informações da Internet) .

  2. Navegue para Sites.

  3. Clique com o botão direito do mouse em Site padrão ou no nome do site que está sendo usado e selecione Adicionar Diretório Virtual....

  4. Digite Símbolos para Alias e clique em Avançar.

    Para facilitar a administração, é recomendável que o mesmo nome seja usado para Pasta, Compartilhamento e Diretório Virtual.

  5. Para o Caminho, insira c:\SymStore e clique em Avançar.

  6. Clique em OK para concluir a adição do diretório virtual.

Execute o processo de configuração do subdiretório uma vez para o servidor. Esta é uma configuração global e afetará aplicativos não hospedados na pasta raiz de um site.

Configuração de subdiretórios

  1. Navegue até [Computador].

  2. Abra o Editor de Configuração.

  3. Navegue até system ApplicationHost/sites.

  4. Expanda virtualDirectoryDefaults.

  5. Defina allowSubDirConfig como False.

Execute esse processo uma vez para o servidor. Esta é uma configuração global e afetará aplicativos não hospedados na pasta raiz de um site.

Tornar opcionalmente os arquivos de símbolo navegáveis

  1. Navegue até [Computador] | Sites | [Site] | Símbolos.

  2. Clique duas vezes em Pesquisa no Diretório no painel central.

  3. Clique em Habilitar no painel direito.

O Tipo MIME para o conteúdo baixado precisa ser definido como application/octet-stream para permitir que todos os arquivos de símbolos sejam entregues pelo IIS.

Configurar tipos MIME

  1. Clique com o botão direito do mouse no diretório virtual Símbolos e escolha Propriedades.

  2. Selecione Cabeçalhos HTTP.

  3. Clique em Tipos MIME.

  4. Clique em Novo.

  5. Em Extensão, digite *.

  6. Para Tipo MIME, digite application/octet-stream.

  7. Para sair da caixa de diálogo Tipos MIME, clique em OK.

  8. Para sair de Propriedades dos Símbolos, clique em OK.

Você pode editar o arquivo web.config para configurar os tipos MIME para Símbolos. Essa abordagem limpa os Tipos MIME herdados e adiciona um Tipo MIME do caractere curinga * catch-all. Essa abordagem pode ser necessária quando tipos MIME estão sendo herdados em certas configurações do IIS.

Usar web.config para configurar tipos MIME

  1. Edite o arquivo web.config como mostrado aqui.

    <?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 o IIS.

O IIS agora está pronto para fornecer arquivos de símbolos de todos os tipos do repositório de símbolos.

Configurando a Autenticação

É possível configurar o IIS para usar "Autenticação Integrada do Windows", de forma que os clientes (windbg.exe, por exemplo) possam fazer automaticamente a autenticação no IIS sem solicitar credenciais ao usuário final.

Observação Somente configure a Autenticação do Windows no IIS para controlar o acesso ao servidor de símbolos se isso for apropriado para seu ambiente. Há outras opções de segurança disponíveis para controlar ainda mais o acesso ao IIS, se isso for necessário para seu ambiente.

Para configurar o método de autenticação como Anônimo

  1. Inicie o Gerenciador do IIS (Serviços de Informações da Internet).

  2. Navegue até [Computador] | Sites | [Site] | Símbolos.

  3. Clique duas vezes em Autenticação no painel central.

  4. Em Autenticação e controle de acesso, clique em Editar.

  5. Clique com o botão direito do mouse em Autenticação do Windows e selecione Habilitar.

  6. Para todos os outros provedores de autenticação, clique com o botão direito do mouse em cada provedor e selecione Desabilitar.

  7. Clique em OK para concluir a configuração da autenticação.

Se a Autenticação do Windows não estiver listada, use Ativar e desativar recursos do Windows para habilitar o recurso. A localização do recurso é diferente em cada versão do Windows. No Windows 8.1/Windows 2012 R2, ele está localizado em Serviços de Informações da Internet | Serviços da World Wide Web | Segurança.

Desabilitar o suporte a Kerberos

SymSrv.dll não oferece suporte à autenticação Kerberos ao conectar ao IIS. Dessa forma, a autenticação Kerberos deve ser desabilitada no IIS e NTLM precisa estar definido como o único protocolo de Autenticação do Windows.

Observação Desabilite a segurança Kerberos somente se isso for apropriado para seu ambiente.

Desabilitar o suporte a Kerberos usando appcmd.exe

  1. Abrir una janela de Prompt de comando

  2. Para desabilitar o Kerberos e forçar o uso do NTLM, use este comando:

    appcmd.exe set config -section:system.webServer/security/authentication/windowsAuthentication /+"providers.[value='NTLM']" /commit:apphost
    
  3. Para retornar ao valor padrão com Kerberos habilitado, use este comando:

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

Configurar prompts de autenticação de cliente SymSrv

Quando SymSrv recebe solicitações de autenticação, o depurador pode exibir a caixa de diálogo de autenticação ou recusar automaticamente a solicitação, dependendo de como ela foi configurada. Você pode configurar esse comportamento usando o comando !sym prompts on|off. Por exemplo, para ativar prompts, use este comando.

!sym prompts on

Para verificar a configuração atual, use este comando.

!sym prompts

Para obter mais informações, confira !sym e Firewalls e servidores proxy.