3 messaggi dal 23 febbraio 2006
Salve a tutti.

Sto sviluppando un progetto intranet di "generose" dimensioni con Visual Web Developer 2.0 Express Edition e, alla metà del lavoro, sono incappato in un problema che, dopo giorni di prove e ricerche sul web, non riesco a risolvere:

Utilizzo l'oggetto System.Io.Ports.Serial port per comunicare con la porta seriale del Pc (client).
Istanziando l'oggetto all'apertura della form con le istruzioni

COM1 = New System.Io.Ports.SerialPort
COM1.Open

ho scoperto che viene chiuso quando la web form chiude il suo "ciclo" perdendo così il collegamento con la porta.
Io avrei bisogno di ricevere dei dati dalla porta seriale in modo asincrono riuscendo a scatenare l'evento DataReceived quando la periferica esterna inizia la comunicazione (una specie di demone).
Esiste la possibilità di farlo in ambiente ASP.NET ?

Ringrazio tutti fin d'ora.
Puoi farlo aprendo la porta e l'oggetto nel global.asax. Lì puoi istanziare oggetti a livello di applicazione oppure tramite un IHttpModule. Poi sta a te memorizzare le info in modo che una pagina aspx prelevi le informazioni.
Il mio consiglio comunque è di fare un servizio windows a parte. Un app web è sottoposta a ricicli e non è il suo mestiere. Dipende cosa devi fare

Ciao

Il mio blog
Homepage
3 messaggi dal 23 febbraio 2006
Grazie per la risposta Ricciolo .... inizio a vedere la luce.
Anche io pensavo di utilizzare "qualcosa" al di fuori della web app ma ... non saprei come far comunicare il servizio windows con la web app.
Lo scenario in cui devo lavorare sarà questo: il pc invierà ad una stampante l'etichetta da stampare e questa, quando avrà finito l'operazione (in modo del tutto asincrono rispetto alla web app) mi darà l'ok. Il pc dovrà rilevare il segnale ed inserire in un db un record ....... tutto qua !! Per cui la web app dovrà "accorgersi" che la com1 sta chiedendo di inviare un segnale.
E' fantascenza ?

Ciao e grazie ancora ..... spero in un ulteriore suggerimento così da poter continuare con VWD 2.0.
Beh allora ti consiglio caldamente di separare chi richiede e chi fisicamente va sulla porta.
Non è immediato ma per comunicare ci sono varie vie: remoting, o WSE (un servizio lato applicazione windows).
Purtroppo non abbiam mai parlato di queste cose su aspitalia perché una cosa più winform.

Ciao

Il mio blog
Homepage
3 messaggi dal 23 febbraio 2006
Eccomi qua.

Dopo il suggerimento di Ricciolo sto tentando di arrivare ad una soluzione. Ho letto l'articolo "Web Services, Remoting, WSE2: pregi e difetti" di Andrea Zani; credo di aver capito, però, che queste tecniche richiedano lo "start" da parte di un utente .....
Quello che sto cercando è un metodo per scatenare un evento all'interno della web app attraverso la "chiamata" effettuata ad una porta seriale. Quello che sono riuscito a fare, dichiarando l'oggetto COM1 nel Global.asax, è di ricevere i dati dalla serial port "accross postbacks". Mi manca l'ultimo passo: come faccio richiamare un evento che risiede nel codebehind di una web form dal global.asax (global.asax non "vede" gli oggetti della web form) ?

Ciao e grazie

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.