Invio di dati da un'applicazione web per C # applicazione console
-
22-08-2019 - |
Domanda
Ho bisogno di inviare i dati da un'applicazione Web per consolare applicazione. Il piano attuale prevede l'applicazione web per inviare i dati al database e la console app per interrogare il database poi agire sui dati quando viene inserito. Devo cambiare il console app per includere un gestore HTTP che l'applicazione web può presentare i dati in modo che non ha bisogno di interrogare il database? Esiste un modo migliore per comunicare i dati tra queste due applicazioni? La console app non deve mai inviare i dati al web app.
Aggiorna
Questa è un'applicazione console .NET 2.0 in modo da WCF non sembra come una valida opzione. Il carico utile di dati è abbastanza piccola (poche 9 campi ID cifre, meno di 150 byte in totale), e verrà inviato con un tasso di circa 10 al minuto. Non v'è alcun firewall tra queste due applicazioni.
Soluzione
Utilizzando le tecnologie più semplici, la vostra console app in grado di connettersi al database in un ciclo controllato da un timer o un BackgroundWorker. Si avrebbe bisogno di un modo per sapere quali record sono nuovi e che non lo sono. Se è possibile eliminare i record da quel tavolo quando li sondaggio, che significa che ogni volta che lo fai, si otterrà solo i nuovi record. Se non è possibile eliminare, utilizzare un campo TimeStamp in quel tavolo e ogni volta che si effettua il prelevamento di selezionare i record con quel tempo timbro superiore al massimo di data e ora della partita precedente. Se è necessario contrassegnare i record come elaborato, allora si può impostare quella bandiera e dimenticare il timestamp.
Altri suggerimenti
Non sono sicuro delle vostre esigenze, o di messa a punto ma WCF potrebbe essere un'opzione.
[modifica]
Per espandere, si potrebbe ospitare un servizio WCF in console app, e avere il sito asp.net chiamano. Del resto, i servizi remoti (o qualunque altra forma) potrebbe funzionare così. In questo modo non avrebbe dovuto avere la piscina console app database quando non è necessario.
È fondamentalmente vuole un app per la comunicazione app. Ci sono un sacco di opzioni, ma in realtà dipende dal vostro requisito (la quantità di dati, quanto è grande, quanto spesso, la latenza), l'ambiente (dietro firewall, online / offline, recupero) e così via.
Utilizzo di un database è una soluzione. Ma si potrebbe usare altri - come webservice (WCF), sistema di messaggistica (MSMQ), .NET Remoting anche
.