Partilhar via


Repositórios de símbolos HTTP

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

O HTTP geralmente é usado em vez de SMB quando um firewall não permite SMB entre o cliente e o servidor. 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 no 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 do repositório de símbolos. Consulte 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 apenas servidos 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 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 de servidor seja usada para qualquer outra finalidade. Normalmente, 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 de comércio voltado para externos. Verifique se a configuração de exemplo descrita aqui faz sentido para seu ambiente e adapte-a conforme apropriado para suas necessidades específicas.

Criando o diretório de símbolos

Comece selecionando o diretório que você usará como repositório de símbolos. Em nossos exemplos, chamamos esse diretório 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.

Configurando o IIS

Os Serviços de Informações da Internet (IIS) devem ser configurados para atender aos símbolos criando um diretório virtual e configurando tipos MIME. Depois que isso for feito, o método de autenticação poderá ser escolhido.

Criar um diretório virtual

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

  2. Navegue para Sites.

  3. Clique com o botão direito do mouse em Default Web Site ou o 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 de subdiretório uma vez para o servidor. Observe que essa é uma configuração global e afetará os 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. Observe que essa é uma configuração global e afetará os aplicativos não hospedados na pasta raiz de um site.

Torne 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.

Configurando 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. Para Extensão , digite *.

  6. Para o tipo MIME , digite application/octet-stream.

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

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

Você pode editar o arquivo web.config para configurar 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 os tipos MIME estão sendo herdados em determinadas configurações do IIS.

Usando web.config para configurar tipos MIME

  1. Edite o arquivo de web.config, conforme 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ímbolo de todos os tipos do repositório de símbolos.

Configurando a autenticação

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

Observação configure somente 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 de Serviços de Informações da Internet (IIS) .

  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. O local do recurso é diferente em cada versão do Windows. No Windows 8.1/Windows 2012 R2, ele está localizado nos Serviços de Informações da Internet | World Wide Web Services | Segurança.

Desabilitar o suporte do Kerberos

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

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

desabilitar o suporte do Kerberos usando appcmd.exe

  1. Abrir una janela de Prompt de comando

  2. Para desabilitar 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
    

Configurando prompts de autenticação de cliente do SymSrv

Quando o 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 !sym prompts ligado|desligado. 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.