Hosting di long-running worker in IIS

4

È possibile ospitare un lavoratore di lunga durata all'interno dell'applicazione ASP.NET? Il worker (per il suo servizio Windows) sta leggendo da una coda inviando messaggi a un servizio WCF. Sarebbe possibile eseguire questo "light long-running worker" all'interno di un'applicazione ASP.NET? Ho letto sull'impostazione della modalità di avvio del pool su "sempre in esecuzione" e quindi sull'utilizzo di una classe di AppStart, che avvia il worker.

Vorrei liberarmi del servizio Windows (problemi di implementazione e debug) e incorporare questo lavoro all'interno di IIS. Qualche suggerimento?

    
posta redman 15.04.2013 - 15:23
fonte

1 risposta

7

È infatti possibile fare ciò che descrivi - sto attualmente lavorando su un'applicazione che usa Funzione di avvio automatico di Asp.Net per avere un thread di lavoro che si comporta come un servizio di Windows ma è ospitato all'interno di IIS quindi tieni tutto il codice in un unico posto.

È molto utile e dopo la configurazione un po 'laboriosa sembra funzionare più o meno come pubblicizzato anche se l'esecuzione di un servizio in IIS piuttosto che un servizio Windows ha un leggero impatto sull'affidabilità nel mio parere (non scientificamente convalidato). Sicuramente uno strumento utile, comunque, e qualcosa che andrà solo meglio man mano che diventerà più popolare.

Modifica: dopo un paio di mesi di utilizzo di questa configurazione, diventa chiaro che a volte si comporta in modi leggermente curiosi, ad esempio avviando più istanze dello stesso thread, e in genere può essere un po 'bizzarro. Inoltre, non è necessariamente più facile da risolvere rispetto a un normale servizio di Windows, anche se probabilmente è più semplice da implementare. Sull'applicazione con cui sto lavorando, stiamo cercando di spostare i nostri servizi a lungo termine da IIS a Windows Services.

    
risposta data 15.04.2013 - 15:51
fonte

Leggi altre domande sui tag