Недавно я работал над сайтом MVC с api и в startup.cs есть строка, которая говорит app.UseWebApi
. Я сделал некоторые поиски, но я не мог найти достойного ответа от того, что он делает. Может кто-нибудь объяснит мне концепцию? Спасибо!
Что делает IAppbuilder.UseWebApi?
Ответ 1
Он настраивает веб-API ASP.NET для запуска поверх OWIN. OWIN реферат веб-сервера, и вы можете запускать его поверх IIS, а также HTTP.SYS, который позволяет вам предоставлять веб-сервер в вашем собственном консольном приложении. Чтобы быть более конкретным, часть, которая работает поверх IIS или HTTP.SYS, Katana, которая является реализацией спецификации OWIN.
Вызывая app.UseWebApi
, вы настраиваете OWIN/Katana для отправки веб-запросов через ASP.NET Web Api, что в терминологии OWIN считается промежуточным программным обеспечением. Для этого требуется пакет NuGet Microsoft.AspNet.WebApi.Owin.
Интересно, что ASP.NET MVC 5 не может быть настроен как промежуточное ПО OWIN/Katana. это зависит от System.Web
и ожидает, что существует синглтон HttpContext
, поэтому он должен работать поверх IIS. Однако несколько пакетов NuGet, которые могут использоваться в проектах MVC (например, для аутентификации), построены поверх OWIN вместо того, чтобы зависеть от HttpContext
, что делает их более полезными. Это одно объяснение того, почему вы видите OWIN, используемый в проекте MVC.