直接上代码,重点文字看注释
namespace ProNetCore { public class Program { public static void Main(string[] args) { //在内部会先配置K8s服务器和IIS相关,其他配置 IHostBuilder builder = Host.CreateDefaultBuilder(args); //启用用户配置的参数,其中包含我们注册的服务/组件以及请求处理管道相关内容 builder.ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Test>(); }); //webhost 用来监听Http请求,就会跳转到Startup类中, //在Startup类中有Configure这个方法来可以处理:HTTP请求处理 IHost webhost = builder.Build();//走到这里会跳转到ConfigureServices()这个方法 webhost.Run();//Run的时候会到Configure()方法里 //CreateHostBuilder(args).Build().Run(); } public class Test { public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapGet("/", async context => { await context.Response.WriteAsync($"ProcessName:{System.Diagnostics.Process.GetCurrentProcess().ProcessName}"); }); }); } } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); } }
2种托管模式
1.InProcess(进程内/默认) 2.OutOf(进程外) //进程内比进程外提供更好的性能 //进程内有一个服务器:要么是IIS,要么是K8s //进程外有2个服务器:一个是内部服务器(K8s),一个是外部服务器(IIS,nginx....) //AspNetCore 内置的服务器是K8s //在调试的时候 //如果选择IIExpress进行调试:当前进程的名字就是IISExpress 在任务管理器里就会找到一个IISEXpress.exe的文件 //如果选择项目名称ProNetCore进行调试:当前进程的名字就是ProNetCore //IISExpress和IIS的区别: //1:IISExpress是轻量级版本,针对开发时优化的一个版本,在实际的生产过程中,往往使用的是IIS
通过dotnet core 进行启动项目
在浏览器中回车上面的URL都是ok的