sexta-feira, 30 de março de 2012

Debugar WebService no Delphi

Para ser capaz de depurar uma DLL ISAPI com Delphi você precisa configurar seu sistema, então seu Delphi.

Configuração de Direitos do Usuário

Configurando o sistema significa, de fato, a configuração dos direitos do usuário.
Vamos, portanto, definir os direitos dos utilizadores.
Para ser capaz de depurar a nossa DLL ISAPI, precisamos fazer os seguintes passos:
  • Adicionar os usuários do IIS no grupo Administradores
  • Autorizar usuários do IIS para depurar programa

Para fazer isso, execute o Console de Gerenciamento por botão direito do mouse em Meu Computador e, em seguida Gerenciar no menu. 
Abra os Usuários e Grupos Locais , então o usuário item.


Select IUSR_ [MachineName] usuário, abra suas propriedades e adicioná-lo ao grupo Administradores, conforme mostrado abaixo:



Agora abra a política de segurança local ferramenta, abra a política local e de direitos de usuário atribuições itens



Editar as seguintes políticas e adicionar usuários correspondentes:

PolíticaUsuários
Atuar como parte do sistema operacionalINTERACTIVO, IUSR_ [MachineName], IWAM_ [MachineName]
Depurar programasINTERACTIVO, IUSR_ [MachineName], IWAM_ [MachineName]
Fazer logon como um serviçoINTERACTIVO, IUSR_ [MachineName], IWAM_ [MachineName]


Reinicie o computador.

A configuração do servidor Web (Internet Information Server 5)


Para depurar ISAPIs DLL, você deve ser capaz de interagir com o serviço Web IIS. 
Você deve selecionar Manual como o tipo de inicialização.  
Além disso, para depurar DLLs, este serviço deve ser capaz de interagir com o desktop.

No Console de Gerenciamento , abrir os Serviços e aplicativos , em seguida, Serviços itens.




No Console de Gerenciamento , abrir os Serviços e aplicativos , em seguida, Internet Information Services itens.


                                                        Configurando Aliases no Internet Information Server 5

Verifique se as permissões de execução estão definidas para Scripts e executáveis

Certifique-se que a proteção do aplicativo é definida como Baixa para forçar o IIS para carregar diretamente a nossa DLL.

Configurando o Delphi


Há duas maneiras de Debugar :
  • Debugar o serviço inetinfo anexando Delphi depurador a ele
  • Debugar seu ISAPI DLL com inetinfo como um processo de host do DLL.

A primeira forma é a mais simples. Você precisa iniciar normalmente o IIS e em Delphi abrir seu projeto.
Run / Attach to process.



Executar novamente (F9) e fechar a janela de CPU. Agora você pode colocar um ponto de interrupção e executa o seu aplicativo.
Se você encerrar sua aplicação (CTRL + F2), o serviço é inetinfo desligamento. Você precisa reiniciá-lo. 

A segunda maneira é transformar inetinfo como um processo. que você precisa para arquivo de registro para que:
Agora, siga os passos:
  1. Pare o IIS rodando na linha de comando: iisreset / stop
  2. Run / Parameters...
  3. Host application (C:\Windows\system32\InetSrv\InetInfo.exe)
  4. Parameters (-e w3svc)

Você pode colocar um breakpoint e executar sua aplicação (F9).

Depois de ter terminado a depuração, você precisa

  1. Encerre a sua aplicação (CTRL + F2)
  2. Inicie o IIS rodando na linha de comando iisreset / start