ASP.NET Core Web应用程序实际上是一个控制台项目,它从Main()
Program类中的入口点public static void开始执行,我们可以在其中为Web应用程序创建主机。
public class Program{ public static void Main(string[] args){ BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<startup>() .Build(); }
虚拟主机提供商是可用于与预先配置的默认值创建IWebHost和IWebHostBuilder的实例的静态类。
CreateDefaultBuilder()方法创建WebHostBuilder与预先配置的默认值的新实例。在内部,
它配置Kestrel,IISIntegration和其他配置。以下是CreateDefaultBuilder()方法。
将“内容根目录”设置为当前目录
允许将命令行参数推送到您的配置对象中
同时添加appsettings.json和appsettings。{Environment} .json以加载到配置对象中
将环境变量添加到配置对象
如果处于开发中,则允许加载机密。
添加控制台/调试记录器
告诉应用使用Kestrel并从已加载的配置中加载Kestrel配置
添加路由
添加IIS集成
当我们要将应用程序托管到iis中时,我们需要添加UseIISIntegration()方法,将IIS指定为外部Web服务器。
UseStartup <startup>()方法指定Web主机要使用的Startup类。我们还可以指定自定义类来代替启动。
Build()方法返回IWebHost的实例并Run()
启动Web应用程序,直到停止为止。