Domanda

È possibile creare un servizio C # EXE o Windows in grado di elaborare le richieste del servizio Web? Ovviamente, una sorta di web server incorporato, probabilmente limitato, dovrebbe far parte del servizio / EXE. Il servizio / EXE non dovrebbe fare affidamento sull'installazione di IIS. Preferibilmente, il servizio Web incorporato potrebbe gestire connessioni di tipo HTTPS / SSL.

Lo scenario è questo: il cliente desidera installare un piccolo agente (un servizio Windows) sui propri computer aziendali. L'agente avrebbe due compiti principali: 1) monitorare il sistema nel tempo e raccogliere determinati dati e 2) rispondere alle richieste del servizio Web (SOAP -v- REST è ancora oggetto di contrattempo) per scopi di raccolta dati o modifica del sistema. Al cliente piace l'idea delle API dei servizi Web in modo che qualsiasi numero di client (in qualsiasi lingua) possa essere scritto per attingere ai vari agenti in esecuzione sui computer aziendali. Vogliono che l'installazione sia relativamente indolore (installa .NET, alcuni assembly, un servizio, modifica il firewall di Windows, avvia il servizio) senza richiedere l'installazione e la configurazione di IIS.

So che posso farlo con Delphi. Ma il cliente preferirebbe farlo in C # se possibile.

Qualche suggerimento?

È stato utile?

Soluzione

Sì, è possibile, potresti dare un'occhiata a WCF e Hosting automatico .

Altri suggerimenti

Sì, è possibile (e abbastanza facile).

Ecco un articolo CodeProject che mostra come realizzare un server HTTP di base in C #. Questo potrebbe essere facilmente inserito in un EXE o servizio autonomo e utilizzato come servizio Web.

Una tecnologia che potresti voler controllare è WCF. WCF può essere un po 'una seccatura, ma c'è un grande screencast su DNRTV di Keith Elder che mostra come iniziare con WCF in un modo molto semplice.

http://www.dnrtv.com/default.aspx?showNum=135

Puoi dare un'occhiata a HttpListener nel framework .Net.

Consiglio vivamente WCF. Si adatterebbe molto bene a un prodotto come quello che stai descrivendo. Esiste un buon numero di libri disponibili.

Certo, puoi farlo. Assicurarsi di modificare il Tipo di output del progetto in Applicazione console. Quindi, nella tua funzione principale, aggiungi un parametro string []. A parte alcune opzioni che ricevi sulla riga di comando, puoi diramare su ServiceBase.Run per eseguirlo come un servizio Windows o diramare su un altro codice per eseguire un'applicazione console.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top