none
Attach do serviço criado no windows service RRS feed

  • Pergunta

  • Bom dia galera!

    Estou com um probleminha no attach to process.

    Desenvolvi um servico utilizando o visual studio 2010 - em Windows Service, instalei o mesmo e inicie.

    Preciso depurar o codigo da aplicacao, para isso tenho que ir no menu Debug - Attach Process. Depois encontrar o servico que eu criei e clicar no botao Attach (ESSE BOTAO QUE ESTA DESABILITADO PRA MIM). Para o servico ser um processo, o mesmo tem que estar startado. Já verifiquei isso e o servico encontra-se startado.

    Abaixo a imagem do botao desabilitado:

    Alguem sabe o porque está assim? Preciso depurar a macro, mas pra isso preciso attach o servico.

    Obrigada

    Att.,

    Bruna

    sexta-feira, 26 de outubro de 2012 12:47

Todas as Respostas

  • Bruna, Bom dia

    Habilitar a opção de [Show processes in all sessions] de um [Refresh] e veja se o seu serviço aparece


    Bruno Viegas D. Ribeiro

    Analista Desenvolvedor de Sistemas
    www.brunoviegas.com.br
     

    sexta-feira, 26 de outubro de 2012 13:42
  • O servico já tem, como voce pode ver na imagem, o servico é o que está selecionado, nome dele é: Integracao_Automatica, oproblema é que o botao Attach nao habilita pra mim, mesmo eu marcando a opcao  Show process in all sessions e dando refresh.

    As pesquisas que eu fiz na internet fala que para o servico ser um processo ele tem que estar startado, e o mesmo encontra-se startado.

    Entendeu?

    
    
    
    sexta-feira, 26 de outubro de 2012 16:07
  • Isso eu entendi

    Eu não sei me explicar direito, mas se você fizer o que eu falei pode aparecer um outro processo onde o botão attach estará disponível.

    Obs.: Você precisa executar o VS como administrador para conseguir fazer o Attach


    Bruno Viegas D. Ribeiro

    Analista Desenvolvedor de Sistemas
    www.brunoviegas.com.br
     

    sexta-feira, 26 de outubro de 2012 16:13
  • Deu certo, aparaceu outro servico.

    Outra duvida, para eu comecar a depurar o codigo já com os servico startado, como que eu faco para iniciar a depuração? Eu atachei o breackpoint está funcionando mais nao executando, pois o servico ja esta iniciado e instalado. Eu nao coloquei um timer no servico, fora a conexao com o oracle que eu fiz tem o metodo OnStart e OnStop.

    Obrigada

    
    sexta-feira, 26 de outubro de 2012 16:23
  • Bruna,

    Sempre que eu debuggei um serviço, só consegui fazer o Debugg fora do projeto do Windows Service, 

    Ex.: 

    Tenho um Projeto Windows Service

    E tenho um outro Projeto com a Lógica do Serviço (Só aqui que eu consegui debugar)

    Qual o Gatilho do seu serviço? ele será executado quando acontecer o que?


    Bruno Viegas D. Ribeiro

    Analista Desenvolvedor de Sistemas
    www.brunoviegas.com.br
     

    sexta-feira, 26 de outubro de 2012 16:27
  • Por enquanto, ele so vai executar quando eu inicair o servico, mas isso vai ficar assim so para eu testar a minha conexao com o banco oracle, entao antes de iniciar o servico em ferramentas administrativas eu vou chamar a tela de configuracao do banco de dados e nessa tela tem um OK, esse ok vai me retornar se a conexao foi realizada com sucesso ou nao, mas nessa hora esta me retornando uns erros de conexao com o banco de dados, é ai que entra a minha necessidade de depurar o codigo, mas essa tela de configuracao do banco de dados só foi chamada quando eu instalei o servico com o InstallUtil, logo depois dessa execucao no VS do visual studio ai que a tefa da configuracao foi chamada.

    Entao eu queria saber se precisa instalar novamente para essa tela ser chamada? Estou chamando a tela no seguinte metodo: ServiceInstall1_BeforeInstall

    Futuramente o servico irá realizar automaticamente, quando o windows ligar.

    Entendeu?

    
    sexta-feira, 26 de outubro de 2012 16:38
  • Entendi.

    Uma dica, eu sempre faço isso quando preciso criar um serviço, eu crio dentro da solutions um projeto de teste (windows form) e eu faço tudo no windows form para depois colocar no serviço, assim fica mais fácil para depurar e encontrar os erros, sempre precisar ficar toda hora Desinstalando e instalando o serviço (sempre que qualquer linha for alterada você precisará fazer isso).

    Pelo visto você esta começando a criar esse projeto agora, se for isso tente criar esse projeto de teste fica mais fácil para depurar.


    Bruno Viegas D. Ribeiro

    Analista Desenvolvedor de Sistemas
    www.brunoviegas.com.br
     

    sexta-feira, 26 de outubro de 2012 16:45
  • Então, essa conexao com o banco oracle (a telinha de configuração), já até tem no windows forms, a pessoa que fez no windows forms na época tentou utilizar o windows services, mas nao deu certo, pois deu erro na bendita conexao do oracle por diversos motivos, é que utilizando o windows services e diferente né. Estou refazendo esse projeto novamente pois o certo é ser uma aplicacao do tipo de servico e nao windows forms.

    O que terei que fazer hoje é, pegar essa conexao com o oracle que já está pronto no windows forms e pegar o codigo de um sistema que foi feito no visual basic 6(esse sistema do VB6 é uma aplicacao onde pega as informacoes de um cobol(o cobol nosso cliente ainda utiliza) e passar para o vb.net que o ideal seria um servico, pois nao vai ter design para o usuário final). É bem complexo, mas é isso ai.

    Entao voce achaque devo fazer tudo primeiro no windows forms? Além da conexao do oarcle que já está pronta , tambem devo passar o codigo do VB6 para o windows forms e testar, depois no final passar para o windows service?

    Mas a implementação do Windows Forms para o Windows Service não são muito diferentes? Será que será facil mudar para o WS depois?

    Att.,

    Bruna

     
    sexta-feira, 26 de outubro de 2012 17:09
  • Bruna, a implementação não é muito dificil não

    se você quiser se aproximar mais ainda do windows service, poderia usar uma aplicação Console, que é quase a mesma coisas.

    Para usar windows form, só tenha o cuidado de não usar controles visuais para mandar informação, por exemplo um MessageBox(), crie um arquivo txt e use como log por exemplo.

    se você tomar cuidado para não usar elementos graficos, será bem simples para passar para windows service.

    Uma outra dica para você ver qual o erro que sua aplicação deu, verifique o log do EventViewer que é registrado sempre que um serviço da erro


    Bruno Viegas D. Ribeiro

    Analista Desenvolvedor de Sistemas
    www.brunoviegas.com.br
     

    sexta-feira, 26 de outubro de 2012 17:20
  • Vou pensar no que voce disse, talvez seja melhor mesmo fazer primeiro no windows forms, depois passo para o windows service.

    Lembrando que nao poderei utilizar controles visuais, pois assim fica mais fácil passar para o windows service.

    Obrigada pela dica Bruno.

    sexta-feira, 26 de outubro de 2012 18:20