创建ASP.NET Core Web程序

第1步–创建新项目
在这里插入图片描述
配置新项目
在这里插入图片描述
取消HTTPS配置
在这里插入图片描述
内置模板说明
在这里插入图片描述
空:表示不含任何内容,从头动手设置说有内容。
在这里插入图片描述
API:表示不需要可视化内容,只会创建 Controllers文件夹

在这里插入图片描述
Web应用程序:页面中心的场景更容易,更高效
在这里插入图片描述
MVC:创建RESTful风格的HTTP服务

在这里插入图片描述
其他模板:

ASP.NET Core项目启动流程

从一个空项目开始搭建,以明白各个部分执行启动流程
在这里插入图片描述
认识第1个文件:.csproj文件 左键–选择 编辑项目文件在这里插入图片描述

在这里插入图片描述
TargetFramework 指此元素用于指定应用程序的目标框架

AppendTargetFrameworkToOutputPath 指当项目发布时,是否将框架版本号追加到指定的输出路径下。
默认情况,这一行为空;在生成项目时,会指定目录与目标框架同名文件夹。

认识第2文件:Program.cs

 public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }

Asp.net core应用程序最初作为控制台应用程序启动,而program.cs文件中的Main()方法就是入口

CreateHostBuilder()方法调用静态Host中的静态方法CreateDefaultBuilder()
CreateDefaultBuilder()是为在服务器上创建程序配置的默认值而存在

认识第3文件:Starup.cs

  public void ConfigureServices(IServiceCollection services)
  {
  }

  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("Hello World!");
       });
   });
  }

ConfigureServices() 方法配置应用程序所需的服务
Configure() 方法配置应用程序的请求处理通道

ASP.NET Core中进程内与进程外托管模型

<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>

在应用程序项目文件AspNetCoreHostingModel 指定托管模型

InProcess内托管(在IIS工作进程托管程序)
OutOfProcess外托管(将Web请求转发到运行Kestrel服务器的后端程序)

默认是进程是内托管模型

检测项目进程是 内还是外托管方法?

把Hello Word 改成 进程名称

endpoints.MapGet("/", async context =>
  {
    var processName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
    await context.Response.WriteAsync(processName);
  });

第一种(默认–内托管)

<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>

在这里插入图片描述
第二种

<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>

在这里插入图片描述
ASP.NET Core 中配置文件
认识launchsettings.json文件

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:56732",
      "sslPort": 44335
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "MockScholManagement": {
      "commandName": "Project",
      "dotnetRunMessages": "true",
      "launchBrowser": true,
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

也可以通过GUI来设置launchSettings文件
在这里插入图片描述
ASPNETCORE_ENVIRONMENT环境变量 默认(Development)–还有一个Production

认识 appsettings.json文件

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

访问配置信息

  "MyKey": "appsettings.json中MyKey的值"

在Startup类中的配置信息

  private IConfiguration _configuration;
 //添加一个构造方法,然后将Iconfiguration服务注入方法中
  public Startup(IConfiguration configuration)
 {
     _configuration = configuration;
 }
 app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", async context =>
                {
                    //防止乱码
                    context.Response.ContentType = "text/plain;charset=utf-8";
                    await context.Response.WriteAsync(_configuration["MyKey"]);
                });
            });

在这里插入图片描述
没有乱码正确显示
在这里插入图片描述
认识 appsettings.Development.json
并添加一段mykey

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "MyKey": "appsettings.Develement.json中MyKey的值"
}

显示内容已经改变
在这里插入图片描述
管理用户机密
右击项目名,选择管理用户机密,输入一行代码

{
  "MyKey": "secrets.json中MyKey的值"
}

在这里插入图片描述
运行项目得到
在这里插入图片描述
环境变量
在launchSettings.json文件中添加MyKey键值对

在这里插入图片描述
运行项目得到
在这里插入图片描述
总结:读取各种配置员默认顺序
1、appsettings.json
2、appsettings.{Environment}.json
3、用户机密(secrets.json)
4、环境变量
5、命令行参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值