将program节点中的路径改为自己程序集的路径即可,例如${workspaceRoot/bin/Debug/netcoreapp2.0/WebApplicationSample1.dll然后点击左侧调试图标,在左上角可选择启动调试,启动后会弹出,对话框提示找不到build命令,选择配置任务运行程序。
配置完成后会多一个task.json文件,此时再次开启调试,便可运行调试。
1.4. 托管ASP.NET Core 应用托管 ASP.NET Core 应用有多种方式,即可在传统的windows平台,也可以部署在开源的Linux上,还可以通过docker容器来部署,本节将讲解多种方式部署 ASP.NET Core 应用
1.4.1. Windows平台托管ASP.NET Core应用ASP.NET Core 应用需要一个Host , Host必须要实现IWebHost接口,接口包括Start方法。创建一个Host 需要使用WebHostBuilder,它会返回一个WebHost实例,用于处理请求。
在上一节所创建的ASP.NET Core应用中,可以看到Program.cs文件中的 'void Main'方法,此方法是整个应用的入口,在入口中调用了CreaDefaultbuilder来创建Host,代码如下:
public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .Build(); }CreateDefaultBuilder创建了WebHostBuilder的实例来构建启动 server 的 host。host需要一个实现IServer接口的server。内建的Web server 包括 Kestrel 和 Httpsys,默认使用Kestrel.在命令行工具中执行dotnet run命令,此时即可启动整个应用。
在ASP.NET Core中可以用两种HTTP server,它们请求原理如图所示:
Kestrel 是跨平台的HTTP server 基于libuv(一个跨平台的异步I/O library)
Httpsys 是基于Windows内核驱动程序Http.Sys的HTTP server。Http.Sys是成熟的技术,可以防范多种攻击,并提供全功能Web服务器的鲁棒性,安全性和可扩展性。IIS本身作为HTTP侦听器运行在Http.Sys之上。
在windows平台上还可以使用Http.Sys作为Web Server
WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseHttpSys() .Build();