Non sto chiedendo un consiglio sulle migliori pratiche poiché ci sono numerosi post e tutorial sul tema in Internet.Qual è il modo giusto per ospitare autonomamente un'API Web?
Sto chiedendo confusione da quando Microsoft ha apportato un sacco di modifiche all'intera procedura di self hosting e ogni tutorial che trovo ha un approccio diverso, deprecato o sconosciuto.
Il mio obiettivo è quello di istituire un auto ha ospitato Web API in un lascito di Windows Service per controllare vari compiti lunga che parte da un client non-Windows, ad esempio un'applicazione Android in cui l'integrazione di un WCF/SOAP il cliente può davvero essere un PITA.
Sono consapevole del fatto che WCF è in grado di offrire un servizio RESTful, ma dal momento che l'API Web è davvero adatta per tale compito, ho pensato di dargli una possibilità.
è così che ho attualmente iniziare il mio API ospitato utilizzando OWIN (Katana):
public class ApiBootstrap {
var httpConfiguration = new HttpConfiguration();
// ... configure routes etc.
appBuilder.UseWebApi(httpConfiguration); // appBuilder = IAppBuilder
var disposable = WebApp.Start<ApiBootstrapper>(_myBaseUri);
}
Ma la maggior parte tutorial andare su un approccio diverso:
var config = new HttpSelfHostConfiguration("http://localhost:999");
// ... configure routes etc..
var server = new HttpSelfHostServer(config);
server.OpenAsync().Wait();
Ora, capisco la classe HttpSelfHostServer
proviene da System.Web.Http.SelfHost
e non utilizza OWIN ed entrambi funzionano correttamente.
Ma io sto lottando per giorni per raggiungere compiti molto semplici come garantire la connessione utilizzando SSL , la creazione di autorizzazione ecc, proprio perché ogni esercitazione trovo su questi argomenti referr al metodo ospitato sé non usare OWIN. Ma AFAIK, OWIN (Katana) è l'approccio preferito da Microsofts per raggiungere l'auto hosting.
Come principiante, sono completamente confuso e indifeso!
Modifica: 4 upvotes, 1 fav e 30 visualizzazioni in soli 6 minuti ma ancora nessuna risposta. Non posso davvero dire se sto facendo roba da caffè geniale qui o se è solo un'incredibile domanda stupida.
Commento al montaggio: Immagino sia perché stai calpestando un terreno completamente nuovo qui. OWIN come approccio preferito da MS non è stato così a lungo, ho ragione? Non sono nemmeno sicuro che ciò che dici siano "compiti molto semplici" sono in effetti questo. Può darsi che la risposta a questa domanda sia "non può essere fatto. Usa IIS". – Nilzor
@Nilzor Sì, anche questo potrebbe essere il caso. Ho già pensato di utilizzare IIS per esporre un'API Web, ma il problema è che ho bisogno di un servizio costantemente in esecuzione per svolgere attività ad alta intensità di CPU. Potrei separare il servizio dall'API implementando un host WCF e accedendolo tramite ad es. un'applicazione web MVC (che offre anche l'API), ma un client WCF in MVC è anche un vero dolore per la mia esperienza. – Acrotygma