ASP.NET WEB API的一大特点是,它可以托管在你指定的任何进程中,而几乎不需要为此做额外的工作。例如我们下面使用一个控制台程序,把我们的 bookcontroller 托管于一个定制的进程中。
NUGET 中安装 selfhost。
引入 using System.Web.Http.SelfHost;
static void Main(string[] args)
{
var config = new HttpSelfHostConfiguration(new Uri("http://localhost:52096"));
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
var host = new HttpSelfHostServer(config);
host.OpenAsync().Wait();
Console.WriteLine("HttpSelfHostServer服务已启动,如果需要退出,请按任意键。");
Console.ReadKey();
host.CloseAsync().Wait();
}Code language: JavaScript (javascript)
这样我们就开启了一个宿主,它在监听请求。我们这里通过 ReadKey 不要让服务停止。如果真要停止,可以按任意键退出,然后宿主也就退出了。
现在我们停止原来的 web api 程序,开启我们的宿主。
Previous: 10-客户端 请求web api
Next: 12-FromBody 提交