18 messaggi dal 05 settembre 2006
Ciao a tutti,
ho un servizio che tutte le notte mi da un errore che nn riesco a riprodurre in fase di debug.
Vi chiedo se esiste un modo per verificare su quale istruzione si è fermato esattamente un programma, nel mio caso un servizio fatto in vb (framework 1.1), con la gestione delle eccezioni?
Se c'è un errore in fase di debug nello stacktrace mi fa vedere la riga di codice su cui avviene l'errore..sul servizio compilato l'errore tracciato e molto generico, di conseguenza nn riesco a risolvere il problema.
Grazie a tutti quelliche mi daranno una mano!
F
501 messaggi dal 09 giugno 2006
Contributi
Ciao.

Fossi in te inizierei ad utilizzare log4net (http://logging.apache.org/log4net). Una volta che hai iniziato ad usarlo non potrai più farne a meno, specialmente in processi batch come il tuo servizio windows. Potresti iniziare loggando tutte le varie exceptions intercettate dai tuoi blocchi TRY/CATCH.

Comunque sia, potresti anche provare ad eseguire la versione DEBUG anziché RELEASE del tuo servizio nel server di produzione e verificare se riesci ad ottenere qualche informazione in più. Sarebbe poi utile capire quali strumenti stai impiegando attualmente per il debug (es. scrivi un semplice ex.ToString() sulla console/nella gestione eventi di Windows?).

Ciao.

.:. Marcello Rutter .:.
18 messaggi dal 05 settembre 2006
Ciao.
Innanzitutto grazie per la risposta.Hai centrato il problema.
Purtroppo il codice l'ho ereditato,altrimenti avrei gestito la cosa diversamente, cmq:la gestione degli errori è fatta con try e catch (purtroppo anche nidificati!) e quando viene generato l'errore viene scritto lo stack, il source e messagge e altre info sull'eventviewer.
Purtroppo non posso testare interamente il flusso perchè il prog legge dei mssaggi da una coda la cui alimentazione nn dipende da me ed avviene solo in tarda serata.Adesso ho messo su un pezzo di codice alla buona che mi traccia l'ultima riga eseguita.Spero di arrivare alla soluzione.
Il download di Log4Net è free?
Grazie ancora.
F
501 messaggi dal 09 giugno 2006
Contributi
Certo che sì: è un progetto Open Source della fondazione Apache. Esiste per diverse piattaforme tra le quali, appunto, .NET. Ci sono diversi vantaggi ad utilizzarlo primo fra tutti la possibilità di inviare le informazioni di debug ecc. contemporaneamente a diversi oggetti (log su file di testo, log su console di sistema, log verso i tracer standard di .NET, log verso SMTP, log verso socket UDP/TCP, log verso syslog server, log verso database, ecc. ecc.) il tutto intervenendo semplicemente nella configurazione XML (tipicamente file .config dell'applicazione). Devo dire la verità che gli esempi e la documentazione non sono un granché ed hanno qualche errore ma in pochi minuti puoi mettere in piedi il tuo sistema di logging e se ci dedichi poche orette riesci ad approfondire l'intero argomento nei dettagli.

Ciao.

.:. Marcello Rutter .:.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.