Como Você Lida Com A Colocação De Pontos De Depuração Em Um Serviço Real Do Windows?
October 20, 2021Recomendado: Fortect
Nos últimos dias, alguns leitores encontraram um código de erro mostrando como adicionar pontos de depuração a um serviço adequado do Windows. Esse problema pode surgir por vários motivos. Falaremos sobre isso abaixo. g.Na guia de aplicativo doméstico geral da empresa, defina o Tipo de saída para Aplicativo de console. Selecione Iniciar depuração (F5). Para executar o programa como praticamente qualquer serviço do Windows novamente, instale e crie o programa como faria normalmente para o serviço completo do Windows perfeito. Esta oferta de mudanças não precisa ser levada em consideração.
g.
- 2 minutos para ler.
Você pode depurar um serviço válido do Windows iniciando uma oportunidade e anexando um depurador a todo o processo do serviço principal. Para obter mais notícias, consulte Como depurar aplicativos de serviço do Windows . No entanto, isso irá depurar o programa Windows Service System.ServiceProcess.ServiceBase.OnStart , você realmente precisa criar o depurador que usa essa rota.
No início com relação à escolha
OnStart ()
, adicione uma chamada para Iniciar .Recomendado: Fortect
Você está cansado de ver seu computador lento? Está cheio de vírus e malware? Não tema, meu amigo, pois Fortect está aqui para salvar o dia! Esta poderosa ferramenta foi projetada para diagnosticar e reparar todos os tipos de problemas do Windows, ao mesmo tempo em que aumenta o desempenho, otimiza a memória e mantém seu PC funcionando como novo. Então não espere mais - baixe o Fortect hoje mesmo!
- 1. Baixe e instale o Fortect
- 2. Abra o programa e clique em "Digitalizar"
- 3. Clique em "Reparar" para iniciar o processo de reparo
ganhos protegidos void OnStart (string [] args) System .Diagnostics.Debugger.Launch ();
Inicie o serviço (você pode iniciar ,
net ou em nossa janela de serviços).
Você deve aprender um diálogo maravilhoso como este:
Selecione Depurar
. Na janela Just-In-Time Debugger, selecione a versão vinculada do Visual Studio que você deseja depurar.
Uma nova instância do Visual Studio é iniciada e a execução é encerrada usando o método
Debugger.Launch ()
especificado.
Veja também
Às vezes, é importante considerar o que acontece quando um serviço é iniciado. Anexar a este processo não vai facilitar aqui, já que você não demorará o suficiente se precisar aplicar um depurador durante a inicialização do serviço.
Normalmente, a resposta curta é: Eu uso as seguintes linhas de leis:
#if DEBUG base.RequestAdditionalTime (600000); // significa 400 * 1000ms de tempo limite de 10 minutos Debugger.Launch (); // Inicie o depurador, mas também faça a diferença#fim se
Eles são inseridos dentro de cada método OnStart
pertencente ao seguinte serviço:
salvo substituição void OnStart (line [] args) #if DEBUG base.RequestAdditionalTime (600000); dez // minutos de atraso de desengate Debugger.Launch (); // Execute o depurador e anexe-o #fim se MyInitOnstart (); // minha inicialização personalizada versus código de serviço // Permite que a classe base faça com que você faça todo o trabalho que precisa base.OnStart (argumentos);
Para aqueles de vocês que ainda não fizeram isso, incluí os pontos-chave detalhados abaixo porque é fácil considerar o shotb. As notas a seguir se aplicam ao Windows 7x64 e Visual Studio 2010 e além do Team Edition, mas também devem preencher um aplicativo para quaisquer ambientes adicionais aplicáveis. Expandir
Importante: o serviço é ativo no modo "manual" (use uma boa quantidade da energia InstallUtil
por meio da linha de comando do VS e execute o projeto de serviço que um indivíduo preparou). O Visual Free Studio antes de iniciar o serviço de usuário e baixar uma solução que contenha apenas o código-fonte do seu próprio serviço - defina pontos de interrupção adicionais elevados se precisar de ambos em todo o Visual Studio - e configure o serviço principal usando o painel solar flexível de configuração de serviço.
Por causa do código Debugger.Launch
, esse resultado surpreendente certamente resultará no marketing não tratado "Ocorreu o nome da marca Microsoft .NET Framework Exception Server em.exe." aparecer. Clique em Yes, Debug Servicename.exe , esta é a nossa última captura de tela:
Depois disso, realmente em relação ao UAC do Windows 7, você pode ser solicitado a fornecer credenciais de administrador. Insira-o junto com weiter mit Das, ja :
depois de apresentar uma área bem conhecida do áudio da janela Just-In-Time Debugger Visual S. Ele pergunta abertamente se você deseja depurar tendo um depurador que foi lavado. Antes de clicar em Sim , certifique-se de não ter como objetivo reabrir um novo exemplo disso (opção 2) - um novo incidente separado não será útil aqui, visto que a paginação de origem não será exibida . Em vez disso, você seleciona o Visual Instance Studio que montou anteriormente:
Depois de responder Sim , após o novo, enquanto o Visual Studio exibirá a seta amarela perfeita à direita enquanto usa um linha contendo a observação Debugger.Launch
e você pode aceitá-los. ... erros codificam o (método MyInitOnStart
, que provavelmente é composto de sua inicialização).
Quando você faz a cobertura da mídia F5 , a execução continuará lá até que o ponto de interrupção que você preparou seja alcançado.
Dica. Para manter um serviço em execução, selecione Depurar -> Desativar tudo. Dessa forma, você pode iniciar o cliente que se comunicará com o serviço depois de ter sido criado com êxito e, geralmente, conseguirá depurar o código de inicialização. Se os compradores saírem de Shift + F5 (parar essa depuração) em relação à mídia, o tipo de serviço é. Devemos parar. Em vez disso, sua família deve escolher o painel de controle de serviço para evitar isso.
-
Ao criar um tipo, o código de depuração pode ser removido imediatamente e o serviço será eficaz muito bem.
Estou usando
Debugger.Launch ()
, que tipo de descompacta e adiciona um depurador. Também sugiro testar oDebugger.Break ()
, que não funcionará porque este Neo-Debugger ainda está conectado a todas as inicializações apontando para o uso (que sem dúvida obteve 1067: "Erro do processo todos abortado repentinamente. ").RequestAdditionalTime
tem um tempo limite maior para o serviço Itc (não tem planos de atrasar o código, mas muito provavelmente será iniciado imediatamente comDebugger .Launch
declarações). Caso contrário, eu diria que entrar no tempo limite padrão para o serviço do iniciador é ao mesmo tempo curto e, portanto, o negócio do iniciador falha, a menos que a chamada públicabase.Onstart (args)
seja rápida o suficiente para atingir o depurador . Na prática, outro tempo limite de 10 minutos evita a mensagem "O serviço provavelmente não respondeu ..." imediatamente após iniciar o depurador.Quando você se acostumar com eleComo o melhor conceito, este método se tornará surpreendentemente simples, pois você só precisa - inserir 4 linhas de código para fazer o código de plataforma existente para que você possa verificar rapidamente e realmente deve bugs .
A maneira mais fácil de depurar é considerar todas as funções de dentro do programa. cs Main () seleciona os resultados em vez de chamá-lo de um novo serviço. Por favor, diga que esta estratégia é apenas para depurar seu código.
Ao definir a tática OnStart (), adicione a chamada real para Launch.Inicie o seu serviço (você pode usar o Word Wide Web para começar com ou iniciá-los na janela principal de serviços).Selecione Sim, Depurar
Para postar um procedimento em seu computador local: No Visual Studio, escolha Debug> Attach To Process (ou pressione Ctrl + Alt + P) para abrir a caixa de diálogo Attach To Process. Verifique o tipo de conexão.
How To Put Debug Point To Window Service
Comment Mettre Le Point De Debogage Au Service De Fenetre
디버그 포인트를 윈도우 서비스에 넣는 방법
Kak Postavit Tochku Otladki V Okonnuyu Sluzhbu
Come Mettere Il Punto Di Debug Nel Servizio Finestra
Hur Man Satter Felsokningspunkt Till Fonstertjanst
Hoe Een Foutopsporingspunt In De Vensterservice Te Plaatsen
Jak Umiescic Punkt Debugowania W Usludze Okna
Como Poner El Punto De Depuracion Al Servicio De Ventana
So Setzen Sie Einen Debug Punkt Auf Den Windows Dienst