.net core框架

ASP.NET Core 入门

跨平台开源框架 B/S

类与方法

Console 部分称为“类”。 类“拥有”方法;或者可以说方法存在于类中。

WriteLine() 部分称为“方法”。

想要使用方法就要知道方法在哪里

——————————

执行流

一次执行一段

ASP.NET Core 是什么东西?.net框架吗?

企业里面-把后端完善

1.配置Swagger

1.为生成的api追加注释

Program.cs

builder.Services.AddSwaggerGen(option =>
{
    //xml文档绝对路经--读取根据控制器api生成的Xml的文件  ?????
    var file = Path.Combine(AppContext.BaseDirectory,
        "BookReadWebApi.xml");

    //true显示器层展示注释
    option.IncludeXmlComments(file, true);

    //action排序
    option.OrderActionsBy(o => o.RelativePath);
});

配置让swagger展示注释

2.不同版本api的版本控制

0.创建版本枚举文件夹

1.获取api的名称
builder.Services.AddSwaggerGen(option =>
{
    typeof(ApiVersions).GetEnumNames().ToList().ForEach(Version =>
    {
        //1.先获取所有name
      option.SwaggerDoc(Version,new Microsoft.OpenApi.Models.OpenApiInfo() 
      {
        Title = $"读书平台",
        Version = Version,
        Description = $"通用版本的CoreApi版本{Version}"
      });
    });
    ......
    }
2.遍历api

app.UseSwaggerUI(c =>
{
    foreach(string version in typeof(ApiVersions).GetEnumNames())
    {
        c.SwaggerEndpoint($"/swagger/{version}/swagger.json",$"阅读平台第{version} 版本");
    }
});
3.控制当前api只在特定(V1)的版本中展示改接口
[ApiExplorerSettings(IgnoreApi =false,GroupName =nameof(Utility.SwaggerExt.ApiVersions.V1))]

静态类里面的静态方法的this成为扩展方法

可以将里面的方法调用改写

CustomSwaggerExt.AddSwaggerExt(builder.Services);等效于
builder.Services.AddSwaggerExt();

这就是中间件的封装?????不懂,不管

2.连接数据库??

还没学

3.中间件

将文件定义到该代理下面

app.Use(async (context, next) =>
{
    await next.Invoke();
});

app.Run(async context =>
{
    await context.Response.WriteAsync("hello");
});

启用静态文件中间件:

一,可以通过打开浏览器查看该静态文件里的内容

1.根目录下新建文件夹wwwroot->将图片文件存储到该地址下

2.Program.cs配置如下内容

app.UseStaticFiles()//启用静态文件中间件

二,指定目录:MyRouse文件夹作为指定目录,RequestPath设置请求前缀

app.UseStaticFiles(new StaticFileOptions()
{
    FileProvider=new PhysicalFileProvider(Path.Combine(builder.Environment.ContentRootPath,"MyRouse")),
        RequestPath="/StaticFiles"//https://localhost:7035/StaticFiles/2.png(选择性添加)
});

三,目录浏览-中间件

在Program.cs配置如下内容

var fileProvider = new PhysicalFileProvider(
        Path.Combine(builder.Environment.ContentRootPath, "MyRouse"));
var requestPath = "/MyRouse";
....
app.UseStaticFiles(new StaticFileOptions()
{
    FileProvider=new PhysicalFileProvider(
        Path.Combine(builder.Environment.ContentRootPath,"MyRouse")),
    RequestPath= requestPath
});

app.UseDirectoryBrowser(new DirectoryBrowserOptions
{
    FileProvider=fileProvider,
    RequestPath= requestPath

});

https重定向

现在都是默认点击就送

1.启动两个默认地址,默认启动swagger文件,

 "https": {
   "commandName": "Project",
   "dotnetRunMessages": true,
   "launchBrowser": true,
   "launchUrl": "swagger",
   "applicationUrl": "https://localhost:7035;http://localhost:5043",
   "environmentVariables": {
     "ASPNETCORE_ENVIRONMENT": "Development"
   }

但http地址是不安全的所以我们现在重定向

2.在Program.cs配置如下内容

app.UseHsts();
app.UseHttpsRedirection();

Hsts是一种安全机制,在未来一段时间只使用https来访问网站

读取配置

ASP.NET Core 项目默认配置文件:appsettings.json文件

 //appsettings.json
 "msg": "yeye"
//Program.cs
app.MapGet("config", (IConfiguration configuration) =>
{
    return configuration["msg"] + '_' + configuration["Logging:LogLevel:befault"];
});

省略

开发环境

控制swagger仅仅在开发环境中展示,发布之后将不再展示

在Program.cs配置如下内容

if (app.Environment.IsDevelopment())
{
    app.UseHsts();
    app.UseSwagger();
    app.UseSwaggerUI();
}
..
    app.Run();

4.more

日志

开发可以使用

app.Logger.LogInformation("程序已启动");//本地自带的

生产环境一般使用第三方的库作为日志:

可以生成txt文件,可以将日志添加到数据库里面,方便排查问题

需要注意的点:保存文件的名称及存储地址

//CfgFile/log4net.Config
<?xml version="1.0" encoding="utf-8"?>
<log4net>
	<!-- 控制台日志配置 -->
	<appender name="Console" type="log4net.Appender.ConsoleAppender">
		<!-- 日志输出格式 -->
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
		</layout>
	</appender>

	<!-- 文件存储日志配置 -->
	<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
		<!-- 保存文件的名称及存储地址 -->
		<file value="log4\log.log" />
		<!-- 追加内容覆盖 -->
		<appendToFile value="true" />
		<!-- 文件的编码方式 -->
		<param name="Encoding" value="UTF-8"/>
		<!-- 每个文件的大小 -->
		<maximumFileSize value="100KB" />
		<!-- 保存文件数量 -->
		<maxSizeRollBackups value="2" />
		<!-- 日志输出格式 -->
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%level %thread %logger - %message%newline" />
		</layout>
	</appender>

	<root>
		<level value="ALL" />
		<appender-ref ref="Console" />
		<appender-ref ref="RollingFile" />
	</root>
</log4net>

0了,会生成log.log的日志文件

IIS安装

1.控制面板

2.选择程序

3.

4.

发布项目

默认路经

IIS运行

下载安装:dotnet-hosting-7.0.14-win.exe(官网下载选择Hosting Bundle进行下载安装即可)

IIS部署

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/447907.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多场成像,快速提高机器视觉检测能力--51camera

多阵列CMOS传感器与芯片级涂层二向色滤光片相结合&#xff0c;可在单次扫描中同时捕获明场、暗场和背光图像。 多场成像是一种新的成像技术&#xff0c;它可以在不同的光照条件下同时捕获多幅图像。再加上时间延迟积分(TDI)&#xff0c;这种新兴的成像技术可以克服许多限制的传…

编译Linux内核并修改版本号后缀为学号-Ubuntu22.04中编译安装Linux内核6.7.8

前言&#xff1a;实验课要求下载最新版本Linux内核并修改版本号&#xff0c;本人在Vmware中Ubuntu22.04中实现&#xff0c;花三天时间查阅大量网站资料。记录一下误打误撞成功的过程&#xff0c;希望对你们有帮助。 目录 一、常规安装步骤&猜想Ubuntu与gcc版本过低 二、安…

【c++】string类的使用及模拟实现

1.我们为什么要学习string类&#xff1f; 1.1 c语言中的字符串 我们先了解一下什么是OOP思想 OOP思想&#xff0c;即面向对象编程&#xff08;Object-Oriented Programming&#xff09;的核心思想&#xff0c;主要包括“抽象”、“封装”、“继承”和“多态”四个方面。 抽象…

2020-2021年江苏省社区行政村边界数据

开展村&#xff08;社区&#xff09;规模优化调整&#xff0c;一是落实中央和省委部署要求的需要。党的十九大作出了实施乡村振兴战略的重大部署。乡村要振兴&#xff0c;合理确定行政村规模是前提、也是基础。2017年以来&#xff0c;国务院和省委省政府相继出台文件&#xff0…

pc端vue2项目使用uniapp组件

项目示例下载 运行实例&#xff1a; 这是我在pc端做移动端底代码时的需求&#xff0c;只能在vue2使用&#xff0c;vue3暂时不知道怎么兼容。 安装依赖包时可能会报&#xff1a;npm install Failed to set up Chromium r756035! Set “PUPPETEER_SKIP_DOWNLOAD” env variable …

羊大师分析羊奶的喝法,都有什么讲究?

羊大师分析羊奶的喝法,都有什么讲究&#xff1f; 羊奶的喝法确实有一些讲究&#xff0c;以下是一些主要的注意事项&#xff1a; 温度控制&#xff1a;羊奶不宜煮沸喝&#xff0c;加热时最好保持在50℃&#xff0d;60℃之间&#xff0c;以避免破坏其营养成分。 饮用时间&…

CleanMyMac X4.15具有哪些功能和特点?

CleanMyMac X具有许多其他功能和特点&#xff0c;以下是一些主要亮点&#xff1a; 系统清理&#xff1a;它能够深入扫描macOS系统&#xff0c;识别并清除各种垃圾文件&#xff0c;如缓存、日志、无用的语言文件等。这不仅有助于释放硬盘空间&#xff0c;还可以提高系统的整体性…

SIGMATEK西格玛泰克CPU模块控制器维修CCP531 12-104-531

Sigmatek的“解决方案”有两方面含义&#xff1a;一方面是指Sigmatek从控制系统、人机界面、伺服驱动系统直到开发平台&#xff0c;都能够提供解决方案&#xff1b;另一方面是指从方案的一开始&#xff0c;Sigmatek便能够位客户提供独特的、量身定做的产品实施方案。 Sigmatek产…

【C++】关键字:auto

文章目录 1. 介绍2. 如何使用 1. 介绍 从C11开始&#xff0c;auto变成了类型指示符&#xff08;之前auto并不是这个作用&#xff09;。使用auto定义变量时必须对其进行初始化&#xff0c;在编译阶段编译器自动推导auto变量的实际类型。因此auto并非是一种“类型”的声明&#…

每日一题——LeetCode1668.最大重复字符串

方法一 includes()repeat()秒了 使用repeat()将word重复i次&#xff0c;看是否包含于sequence中&#xff0c;将最大的i赋值给k var maxRepeating function(sequence, word) {let k0for(let i1;i*word.length<sequence.length;i){if(sequence.includes(word.repeat(i))){k…

人工智能将如何改变我们的工作?

在2023年&#xff0c;生成式人工智能成为最热门的话题。以ChatGPT为例&#xff0c;该平台拥有超1.8亿的订阅用户和近亿的周活跃用户。无论是媒体还是公众&#xff0c;都在广泛讨论生成式人工智能。尽管我对此感到好奇&#xff0c;但我不确定应该提出哪些问题&#xff0c;也不清…

题目:珠宝的最大交替和(蓝桥OJ 3791)

问题描述&#xff1a; 解题思路&#xff1a;&#xff08;思路样例从0开始赋值&#xff09; 注意点&#xff1a;1.S需要开long long 2.需要考虑如果交换的差值&#xff08;即Aj - Ai)为负数的情况。 题解&#xff1a;&#xff08;实例代码为从1开始赋值&#xff0c;因此奇偶要与…

工业数据采集网关的功能与应用-天拓四方

工业数据采集网关是一种专门用于采集、处理、传输工业现场数据的设备。它能够实时收集来自各种传感器、仪表和设备的数据&#xff0c;并通过网络将这些数据传输到云端或数据中心。同时&#xff0c;数据采集网关还具备数据清洗、转换和压缩等功能&#xff0c;确保数据的质量和传…

mybatis如何打印出完整sql语句

分两步: 1. 在application.properties配置中添加配置项: mybatis-plus.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl logging.level.mapper文件的包路径DEBUG (示例: logging.level.com.test.biztest.service.dalDEBUG, com.test.biztest.service.d…

九州金榜|孩子厌学怎么引导?

孩子在成长的过程中&#xff0c;尤其在上学的时候&#xff0c;孩子出现厌学情绪这是非常常见的事情&#xff0c;当孩子出现厌学情绪时&#xff0c;家长要采取什么样的方法才能帮助孩子找回学习兴趣和动力呢&#xff1f;九州金榜家庭教育给出建议&#xff0c;首先父母不应该过于…

【JAVA】Collections.sort()方法详解

一、简介 Collections.sort() 是 Java 集合框架&#xff08;Java Collections Framework&#xff09;中的一个静态方法&#xff0c;用于对列表&#xff08;List&#xff09;中的元素进行排序。此方法利用了 Java 的泛型机制&#xff0c;可以很方便地对各种类型的列表进行排序。…

FPGA-AXI4接口协议概述

假设我们要传一帧1080P的图片到显示屏显示&#xff0c;那么需要多大的储存空间呢&#xff1f; 一帧1080P的RGB565图像数据需要1920*1080*1633.1776Mb 存储空间 下图是ZYNQ-7000系列中Block RAM的大小&#xff1a; 可以看到最大存储空间的BRAM都不能存储一帧图片&#xff0c;那…

Turbo C++ v3.7.8.9的下载和安装(C语言编辑器完整安装步骤详细图文教程)·跟老吕学C语言(C语言必学教程之一)

[TOC](Turbo C v3.7.8.9的下载和安装(C语言编辑器完整安装步骤详细图文教程)) 跟老吕学C语言&#xff08;C语言必学教程之一&#xff09; 老吕是通过 Turbo C 编译器开始了 C 编程培训和开发。 本文中&#xff0c;老吕将带你了解如何下载 Turbo C&#xff0c;如何在任何最新 W…

十堰网站建设公司华想科技具有10年的网站制作经验

2018年已经结束了。 华翔科技收到了很多客户的咨询&#xff0c;他们都有一个共同的问题&#xff1a;建一个网站需要多少钱&#xff1f; 但是&#xff0c;我们都会问&#xff1a;您有什么具体需求吗&#xff1f; 大多数人的答案是否定的&#xff0c;他们只是想打听一下价格。 十…

学习JAVA的第十九天(基础)

目录 File 成员方法&#xff08;判断和获取&#xff09; 成员方法&#xff08;创建和删除&#xff09; 成员方法&#xff08;获取并遍历&#xff09; IO流 FileOutputStream FileInputStream 文件拷贝 前言&#xff1a;学习JAVA的第十八天&#xff08;基础&#xff09;…