C# IAppbuilder.UseWebApi做什么?

C# IAppbuilder.UseWebApi做什么?,c#,asp.net-mvc,api,C#,Asp.net Mvc,Api,我最近在一个有api的MVC站点上工作,在startup.cs中有一行写着app.UseWebApi。我做了一些搜索,但找不到一个合适的答案。有人能给我解释一下这个概念吗?谢谢 它将ASP.NET Web API配置为在上运行。OWIN抽象了一个web服务器,您可以在IIS和HTTP.SYS上运行它,后者允许您在自己的控制台应用程序中提供一个web服务器。更具体地说,在IIS或HTTP.SYS之上运行的部分是OWIN规范的实现 通过调用app.UseWebApi可以配置OWIN/Katana,通

我最近在一个有api的MVC站点上工作,在startup.cs中有一行写着
app.UseWebApi
。我做了一些搜索,但找不到一个合适的答案。有人能给我解释一下这个概念吗?谢谢

它将ASP.NET Web API配置为在上运行。OWIN抽象了一个web服务器,您可以在IIS和HTTP.SYS上运行它,后者允许您在自己的控制台应用程序中提供一个web服务器。更具体地说,在IIS或HTTP.SYS之上运行的部分是OWIN规范的实现

通过调用
app.UseWebApi
可以配置OWIN/Katana,通过ASP.NET web Api发送web请求,在OWIN术语中,该Api被视为中间件。这需要NuGet包


有趣的是,ASP.NETMVC5不能配置为OWIN/Katana中间件。它依赖于
System.Web
,并期望
HttpContext
单例存在,因此它必须在IIS上运行。但是,可以在MVC项目中使用的几个NuGet包(例如用于身份验证)是在OWIN之上构建的,而不是依赖于
HttpContext
,这使它们更有用。这就是为什么在MVC项目中使用OWIN的原因之一。

您需要安装Microsoft ASP.NET Web API2 OWIN Self Host,这将解决此问题

您可以使用以下NuGet命令,如下所示:

Install-Package Microsoft.AspNet.WebApi.OwinSelfHost

谢谢你的解释。这一次的呼叫是否意味着“运行并聆听”服务器?@BalajiBoggaramRamanarayan:我不明白你的问题。调用
app.UserWebApi
不会执行web服务器。它将web服务器(可能是IIS或您自己的主机)配置为通过ASP.NET web API(这是一个库)发送HTTP请求。您可以阅读一篇文章,了解OWIN和Katana的概述。这个答案不是针对OP的问题,但它回答了我的问题:我需要做什么才能获得appBuilder.UseWebApi()方法?