Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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: 6380
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 ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM