第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、命令行参数
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/107146.html