Sto cercando di scrivere un piccolo servizio Web per l'esecuzione su una piccola scatola Linux. Preferisco codificare in C#, quindi sto cercando di usare Mono.HttpListener funziona bene su Mono?
Non voglio il sovraccarico di eseguire un server web completo o la versione di Mono di ASP.NET. Sto pensando di avere un singolo processo con un thread che si occupa di ogni connessione client. Memoria condivisa tra thread invece di un database.
Ho letto un po 'sulla versione Microsoft di HttpListener e su come funziona con il driver Http.sys. Purtroppo, la documentazione di Mono su questa classe è solo l'interfaccia di classe automatizzata senza alcuna discussione su come funziona sotto il cofano. (Linux non ha Http.sys, quindi immagino sia implementato in modo sostanzialmente diverso.)
Qualcuno potrebbe indicarmi alcune risorse per discutere di questo modulo?
Molte grazie, Bill, billpg.com
(Un po 'di storia alla mia domanda per gli interessati.)
Qualche tempo fa, ho chiesto this question, interessati a mantenere una lunga conversazione aperta con un sacco di avanti e indietro. Mi ero deciso a progettare il mio protocollo ad hoc, ma le persone con cui ho parlato desideravano davvero un'interfaccia REST, anche a costo del segnale "Okay, invia il tuo comando adesso".
Quindi, mi sono chiesto di eseguire ASP.NET su un server Linux/Mono, ma sono incappato su HttpListener. Sembrava l'ideale, dato che ogni "conversazione" poteva essere eseguita in un thread separato. Il thread che chiama HttpListener in un ciclo può cercare per quale thread è presente ogni connessione incomming e passare il riferimento a quel thread.
L'alternativa per un servizio basato su ASP.NET, consiste nel fare in modo che il codice ASPX prelevi lo stato da un database e scriverne il nuovo stato al termine. Sì, funzionerebbe, ma è un sacco di spese generali.
mi piacerebbe iniziare qui: http://www.koders.com/csharp/fidD8A53577DCD929265B6FE7D3B483FE38655DFDCF.aspx –
@MauricioScheffer - Il tuo link non sembra funzionare più. –