Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicit e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Servizio windows c#
Forum - C# / VB.NET - Servizio windows c#

Avatar
jaco94++ (Normal User)
Expert


Messaggi: 203
Iscritto: 22/10/2008

Segnala al moderatore
Postato alle 14:09
Domenica, 04/12/2011
Salve :D

Ho un problema con l'esecuzione di un servizio windows dopo averlo creato ed installato il servizio parte e si chiude da solo, il servizio ha il seguente codice:

Codice sorgente - presumibilmente C# / VB.NET

  1. protected override void OnStart(string[] args)
  2.         {
  3.             Ex();
  4.         }



Ex:

Codice sorgente - presumibilmente C#

  1. void Ex()
  2. {
  3.             string temp = string.Empty;
  4.             string ip = string.Empty;
  5.             string MyMid = regmanager.readkey(regmanager.MachineID);
  6.             string MyName = regmanager.readkey(regmanager.UserID);
  7.             MyMid = "1234567800"; // temp
  8.             Byte[] bytes;
  9.  
  10.  
  11.  
  12.             UdpClient listener = new UdpClient(9000);
  13.             IPEndPoint ep = new IPEndPoint(IPAddress.Any, 9000);
  14.  
  15.  
  16.             while (AbortEx == false)
  17.             {
  18.                 Thread.Sleep(50);
  19.                 bytes = listener.Receive(ref ep);
  20.                 ip = ep.ToString();
  21.                 temp = Encoding.ASCII.GetString(bytes, 0, bytes.Length);
  22.  
  23.                 if (!string.IsNullOrEmpty(temp))
  24.                 {
  25.                    . . .
  26.                 }
  27.               }
  28. }



Perch non rimane nel ciclo while ? :d

PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5460
Iscritto: 03/01/2010

Up
2
Down
V
Segnala al moderatore
Postato alle 14:42
Domenica, 04/12/2011
La OnStart viene chiamata quando il servizio parte, *non* rappresenta il servizio.

Quindi nella OnStart devi fare tutto quello che serve a far partire il servizio e poi la OnStart termina.

In pratica, nella OnStart devi solamente creare e avviare un thread in cui fai quello che ti aspetti dal servizio; fatto questo, l'OnStart termina.

Ho provato mettendo nella OnStart questo : Thread th = new Thread(Ex); th.Start(); ma non cambiato niente ... sto sbagliando ancora o qualcosa in Ex non va? - jaco94++ - 04/12/11 19:05
E' molto difficile risponderti senza vedere tutto il progetto ... - nessuno - 04/12/11 19:24
http://dl.dropbox.com/u/10703438/Exchanger.rar Qui c' il progetto (Dovrebbe lasciarlo scaricare ogni tanto fa storie) - jaco94++ - 04/12/11 19:38
S ok ... ma ci vuole un po' di tempo per dare un'occhiata ... (e c' la partita ... :-)) - nessuno - 04/12/11 19:49
Tranquillo quando e se hai voglia li =) - jaco94++ - 04/12/11 20:39
Ho scoperto cosa ha il mio servizio, non si avvia perch va in errore nella lettura di un valore nel registro ma non capisco il codice per leggere il registro una vita che lo uso ha sempre funzionato infatti testando tutto il progetto su un windows form funziona correttamente ! perch f cosi? =( - jaco94++ - 06/12/11 19:59


Ricorda che nessuno obbligato a risponderti e che nessuno perfetto ...
PM