2016-07-11 40 views
17

Ho lavorato di recente su un sito MVC con un'API e nell'avvio.cs c'è una riga che dice app.UseWebApi. Ho fatto qualche ricerca ma non sono riuscito a trovare una risposta decente su ciò che fa. Qualcuno può spiegare il concetto per me? Grazie!Cosa fa IAppbuilder.UseWebApi?

risposta

28

Configura l'API Web ASP.NET per l'esecuzione su OWIN. OWIN riassume un server Web ed è possibile eseguirlo sia su IIS che su HTTP.SYS che consente di fornire un server Web nella propria applicazione console. Per essere più specifici, il pezzo che viene eseguito su IIS o HTTP.SYS è Katana che è un'implementazione delle specifiche OWIN.

Chiamando app.UseWebApi si configura OWIN/Katana per inviare richieste Web tramite ASP.NET Web Api che nella terminologia OWIN è considerato un middleware. Ciò richiede il pacchetto NuGet Microsoft.AspNet.WebApi.Owin.

È interessante notare che ASP.NET MVC 5 non può essere configurato come middleware OWIN/Katana. dipende da System.Web e si aspetta che esista il singleton HttpContext quindi deve essere eseguito su IIS. Tuttavia, diversi pacchetti NuGet che possono essere utilizzati nei progetti MVC (ad es. Per l'autenticazione) sono costruiti su OWIN invece di assumere una dipendenza da HttpContext che li rende più utili. Questa è una spiegazione del perché vedi OWIN utilizzato in un progetto MVC.