Se você tiver escrito uma DLL de extensão servidor da Internet, você pode estar interessado em começá-lo executando sob o depurador, assim você pode rastrear sua execução, definidos pontos de interrupção ou monitor variável valores depois que a extensão é chamada. Levantar o Microsoft Internet Information Server (IIS) e em execução com sua DLL no depurador são um pouco complicado. Você precisará primeiro localizar um servidor tranquilo onde você pode depurar seu DLL num ambiente controlado. Depois de encontrar esse recurso, você pode iniciar a depuração sua DLL.
Por causa das diferenças entre a versão 3.0 e 4.0 do IIS, é importante saber qual versão você usará para depurar seu DLL.
Siga estas etapas para depurar uma DLL usando o IIS 3.0 de extensão servidor da Internet:
-e W3Svc
Depurando dicas
O IIS pode ser executado como um aplicativo interativo, tornando muito mais fácil de depuração. Para fazer isso, você precisará fazer algumas alterações em seu sistema. Para a conta de usuário que você está indo para executar o servidor sob, você precisará adicionar alguns privilégios.
Para adicionar privilégios, execute o Gerenciador de usuários. (Se você estiver usando o Windows NT 3.51, execute MUSRMGR.EXE. Se você estiver usando o Windows NT 4.0, execute USRMGR.EXE.) Clique em Direitos de usuário no menu políticas . Marque a caixa de verificação Mostrar direitos avançados do usuário . Em seguida selecione actuar como parte do sistema operacional na lista suspensa à direita e adicione a conta de usuário.
Repita esse processo com Gerar auditorias de segurança (também na lista Soltar-para baixo à direita). Certifique-se de que todos os serviços de Internet (WWW, ftp e gopher) estão parados e INETINFO.EXE não estiver em execução (use TLIST para verificar). Faça logoff e logon novamente. Você pode carregar, em seguida, o IIS com a linha de comando:
Inetinfo. exe -e W3Svc
Para carregar o IIS em um depurador (por exemplo, em WinDbg), use a seguinte linha de comando:
WinDbg Inetinfo. exe -e W3Svc
Você está pronto para ir. No Visual C++, aponte para Depurar no menu construir e, em seguida, clique em ir. Esta ação inicia o serviço de publicação WWW, e o depurador estará ciente dos símbolos em sua DLL. Você pode ignorar o aviso que o arquivo não tem informações de depuração.
Quando você fecha o Visual C++, salve o espaço de trabalho de INETINFO.EXE. Dessa forma, você pode evitar precisar reinserir as configurações para a sessão de depuração. Basta Abra o INETINFO.Arquivo de espaço de trabalho MDS quando você estiver pronto para iniciar o depurador novamente.
DLLs em cache
Você pode ajustar a configuração do registro em HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W3SVC/parâmetros/CacheExtensions para que o servidor reinicializar DLLs cada vez que eles são usados. Se essa configuração for 1, o servidor irá manter DLLs carregadas na memória contanto que possível. Esta é a configuração padrão para o servidor, uma vez que ajuda o servidor a alcançar desempenho máximo e só deve ser alterada se você estiver usando o servidor para depuração. Se você fizer a configuração 0, o servidor irá sempre recarregar DLLs de extensão cada vez que eles são usados.
Forçando ao servidor para recarregar seu DLL é útil quando sua DLL poderá deixar de funcionar ou perturbar qualquer por-instância dados que ele mantém. Ao forçar o servidor para reinicializar a DLL, você pode voltar sua DLL em um estado previsível com pouco esforço. Certifique-se de testar sua DLL usando a configuração normal do CacheExtensions, porém, não para certificar-se de código em sua DLL é completamente dependente desse Estado inicial.
Existem várias maneiras de criar um ambiente de Depurando seu servidor componentes e DLLs de extensão servidor da Internet quando utilizar o IIS 4.0 ou posterior. Se você estiver usando um depurador capaz de anexar a um processo de Windows NT, você pode usar essa funcionalidade para depurar seu componente ou extensão. Por exemplo, se você está Depurando com o Visual C++, siga estas etapas:
Se o depurador que estiver usando não pode anexar a um processo de Windows NT, siga estas etapas para estabelecer um ambiente de depuração adequado:
Depurador = lt; DebuggerExeName > onde DebuggerExeName é o caminho completo para o depurador estiver usando.
Quando o serviço de publicação na World Wide Web é iniciado, o depurador será igualmente lançado. Agora você pode definir pontos de interrupção apropriados em sua DLL de extensão servidor da Internet.
Você não será capaz de definir pontos de interrupção no código-fonte do componente até que o componente tenha sido carregado na memória. Para fazer isso, inicie o Internet Explorer e exibir a.Página ASP que contém o objeto. Assim que a página for carregada, você deve ser capaz de definir pontos de interrupção em seu componente. Clique em Atualizar para exibir a página novamente e acionar os pontos de interrupção selecionado. Se o componente não pode ser carregado até mesmo uma vez (por exemplo, se a falha ocorre no código de inicialização de componente), você precisará carregar o componente da DLL antes de se iniciar a sessão de depuração. (Consulte o passo 11 abaixo.)
Em alguns casos, pode não ser capaz de usar qualquer um dos dois procedimentos descritos acima. Se você tiver dificuldade para usar qualquer uma dessas estratégias, existe uma terceira abordagem, que tem sido descrita em versões anteriores do IIS. Esta terceira abordagem exige o estabelecimento de privilégios de segurança do Windows NT, bem como fazer alterações no registro. Ele também desativará sua capacidade de executar o IIS como um serviço. Esta abordagem só deve ser usada se as duas estratégias anteriores falharam.
{61738644-F196-11D0-9953-00C04FD919C1} / / WAMREG IIS admin Service
{9F0BD3A0-EC01-11D0-A6A0-00A0C922E752} / / extensão do IIS Admin Crypto
{A9E69610-B80D-11D0-B9B9-00A0C922E750} / / o serviço IISADMIN
A palavra-chave LocalService pode ser encontrada em subchaves adicionais de AppID.
C:\WINNT\System32\Inetsrv\Inetinfo.exe
-e w3svc
&Notanbsp; Depois de concluir a sessão de Depurando, você deve inverter as etapas 5 a 1 para restaurar as configurações anteriores e permitir que o IIS seja executado como um serviço.
Técnico anotações por número |nbsp; &Notas técnicas por categoria