none
Problema ao passar código do Windows Forms para Windows Service RRS feed

  • Pergunta

  • Boa Tarde pessoal,

    sou novato nesse mundo de programação VB .Net e estou apanhando agora que devo desenvolver um serviço.

    Tenho uma aplicação que foi desenvolvida com windows forms que está rodando perfeitamente, e agora devo passa-la para windows service.

    Eu tirei praticamente tudo, deixei apenas a parte que interessa para mostrar aqui.

    O Código abaixo da um start e inicia uma comunicação com um microterminal, usado para vendas de balcao.

    Segue abaixo o exemplo em forms que está funcionando.

    Public Class Form1
    
        Public COMUNICATION_MSG As Integer = &H400 + 1
        Public CONNECT_MSG As Integer = &H400 + 2
    
        Declare Function mt_startserver Lib "pmtg.dll" (ByVal mywhnd As Long, ByVal conecmsg As Integer, ByVal commumsg As Integer) As Integer
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    
            mt_startserver(0, COMUNICATION_MSG, CONNECT_MSG)
    
        End Sub
    End Class

    Agora o service

    Public Class Service1
    
        Public Shared COMUNICATION_MSG As Integer = &H400 + 1
        Public Shared CONNECT_MSG As Integer = &H400 + 2
    
        Declare Function mt_startserver Lib "pmtg.dll" (ByVal mywhnd As Long, ByVal conecmsg As Integer, ByVal commumsg As Integer) As Integer
    
        Protected Overrides Sub OnStart(ByVal args() As String)
            mt_startserver(0, COMUNICATION_MSG, CONNECT_MSG)
        End Sub
    
    End Class

    Quanto rodo o service ele me apresenta nenhum erro, mas a comunicação não é iniciada.

    Fazendo alguns teste percebi que ao retirar 

    Handles MyBase.Load

    Do exemplo 1 que está funcionando... a comunicação também não é iniciada.

    Como posso fazer para que o código funcione rodando como serviço?

    Muito Obrigado.

    terça-feira, 17 de julho de 2012 19:30

Respostas

  • Deixei para responder depois e acabei me esquecendo.

    Eu já havia lido os dois links que postou, só postei essa dúvida aqui após ficar 2 semanas procurando e tentando de várias maneiras...

    Como o projeto não é prioridade e ele está funcionando perfeitamente com windows forms, deixei ele um pouco de lado.

    Quando vejo algo novo sobre service eu leio e continuo testando nesse projeto... ainda não obtive sucesso, mas continuo tentando.

    Muito obrigado pela ajuda.

    • Marcado como Resposta Frank Pinheiro terça-feira, 14 de agosto de 2012 20:06
    terça-feira, 14 de agosto de 2012 17:40

Todas as Respostas

  • Alguém tem alguma ideia?

    terça-feira, 24 de julho de 2012 12:15
  • Para windows service é um pouco diferente,

    Existe o evento OnStart() que é o chamador das tarefas do serviço.

    Acredito que é bom que entenda como funciona o windows service:

    http://www.macoratti.net/vbn5_csw.htm

    Para debugar (e testar sem instalar) escrevi um artigo que vai te ajudar:

    http://eduardopires.net.br/2012/06/debugando-windows-services-no-visual-studio/

    Conseguiu resolver sua dúvida?

    Se sim, marque uma resposta, caso não poste sua dúvida aqui.


    É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"

    Eduardo Pires
    www.eduardopires.net.br

           

    quarta-feira, 25 de julho de 2012 16:22
  • Amigo,

    Conseguiu resolver sua dúvida?


    É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"

    Eduardo Pires
    www.eduardopires.net.br

           

    quinta-feira, 26 de julho de 2012 12:04

  • Já que solicitou nossa ajuda poderia retornar dizendo se conseguiu resolver sua dúvida?

    Se sim, marque uma resposta, caso não poste sua dúvida aqui.


    É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"

    Eduardo Pires
    www.eduardopires.net.br

           

    terça-feira, 14 de agosto de 2012 13:21
  • Deixei para responder depois e acabei me esquecendo.

    Eu já havia lido os dois links que postou, só postei essa dúvida aqui após ficar 2 semanas procurando e tentando de várias maneiras...

    Como o projeto não é prioridade e ele está funcionando perfeitamente com windows forms, deixei ele um pouco de lado.

    Quando vejo algo novo sobre service eu leio e continuo testando nesse projeto... ainda não obtive sucesso, mas continuo tentando.

    Muito obrigado pela ajuda.

    • Marcado como Resposta Frank Pinheiro terça-feira, 14 de agosto de 2012 20:06
    terça-feira, 14 de agosto de 2012 17:40
  • Amigo,

    Se sua rotina é executada de forma periódica com certeza o windows service resolverá seu problema.

    Dê uma lida, monte um windows service, crie os timers e faça as chamadas dos métodos que executam sua rotina, tem que funcionar.

    Na dúvida poste aqui.

    *PS - Procure evitar de deixar a thread aberta sem resposta, atrapalha na organização do fórum.


    É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"

    Eduardo Pires
    www.eduardopires.net.br

           

    • Marcado como Resposta Frank Pinheiro terça-feira, 14 de agosto de 2012 20:05
    • Não Marcado como Resposta Frank Pinheiro terça-feira, 14 de agosto de 2012 20:05
    terça-feira, 14 de agosto de 2012 19:23