ASP.NET Core web 应用程序实际上是一个控制台项目,它从 Program 类中的入口点 public static void Main() 开始执行,在这里我们可以为 web 应用程序创建一个主机。public class Program{ public static void Main(string[] args){ BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup() .Build(); }WebHost是一个静态类,可用于创建具有预配置默认值的IWebHost和IWebHostBuilder实例。CreateDefaultBuilder()方法创建一个具有预配置默认值的新WebHostBuilder实例。在内部,它配置Kestrel、IISIntegration和其他配置。… 阅读更多
Kestrel 是 ASP.NET Core 的跨平台 Web 服务器。它在 .NET Core 支持的所有平台和版本上都受支持。它默认情况下作为 ASP.NET Core 中的内部服务器包含在内。Kestrel 本身可以用作边缘服务器,即面向 Internet 的 Web 服务器,可以直接处理来自客户端的传入 HTTP 请求。在 Kestrel 中,用于托管应用程序的进程是 dotnet.exe。Kestrel 不与 InProcess 托管模型一起使用。使用 Out of Process 托管模型,Kestrel 可以通过以下两种方式之一使用。Kestrel 可以用作面向 Internet 的 Web 服务器Kestrel 可以… 阅读更多
内置 IoC 容器管理已注册服务类型的生命周期。它会根据指定的生命周期自动释放服务实例。内置 IoC 容器支持三种生命周期-单例 - IoC 容器将在整个应用程序的生命周期内创建和共享服务的单个实例。瞬态 - 每次请求时,IoC 容器都会创建指定服务类型的新实例。作用域 - IoC 容器将为每个请求创建指定服务类型的一个实例,并在单个请求中共享。示例 public interface ILog{ void info(string str); } class MyConsoleLogger … 阅读更多