Core WebApi项目快速入门(一):环境部署
1.WebApi新建与部署
1.1 新建Core WebApi工程
1.2 部署
1.2.1 IIS部署
首先以文件方式发布应用程序,然后下载依赖.net core运行时及host安装包
在iis中看见AspNetCoreModuleV2证明安装成功。
1.2.2 直接控制台启动
由于内置了Kestrl,可以不依赖与任何服务器服务
看到启动的Hosting的生命周期,证明已成功启动站点。同时根据配置文件默认监听http 5000端口及https 5001端口。
2. Swagger配置
2.1 引入依赖库文件
2.2 添加swagger服务


- public void ConfigureServices(IServiceCollection services)
- {
- services.AddSwaggerGen(s =>
- {
- s.SwaggerDoc("V1", new OpenApiInfo
- {
- Title = "test",
- Version = "version-01",
- Description = "我的第一个API"
- });
- });
- services.AddControllers();
- }
2.3 添加swagger中间件


- app.UseSwagger();
- app.UseSwaggerUI(s =>
- {
- s.SwaggerEndpoint("/swagger/V1/swagger.json", "test");
- });
3. 日志配置
3.1 引入log4net及扩展库dll
3.2 加入log4net.config配置文件


- <?xml version="1.0" encoding="utf-8"?>
- <log4net>
- <!-- Define some output appenders -->
- <appender name="rollingAppender" type="log4net.Appender.RollingFileAppender">
- <file value="log\log.txt" />
- <!--追加日志内容-->
- <appendToFile value="true" />
- <!--防止多线程时不能写Log,官方说线程非安全-->
- <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
- <!--可以为:Once|Size|Date|Composite-->
- <!--Composite为Size和Date的组合-->
- <rollingStyle value="Composite" />
- <!--当备份文件时,为文件名加的后缀-->
- <datePattern value="yyyyMMdd.TXT" />
- <!--日志最大个数,都是最新的-->
- <!--rollingStyle节点为Size时,只能有value个日志-->
- <!--rollingStyle节点为Composite时,每天有value个日志-->
- <maxSizeRollBackups value="20" />
- <!--可用的单位:KB|MB|GB-->
- <maximumFileSize value="3MB" />
- <!--置为true,当前最新日志文件名永远为file节中的名字-->
- <staticLogFileName value="true" />
- <!--输出级别在INFO和ERROR之间的日志-->
- <filter type="log4net.Filter.LevelRangeFilter">
- <param name="LevelMin" value="ALL" />
- <param name="LevelMax" value="FATAL" />
- </filter>
- <!--必须结合起来用,第一个只过滤出WARN,第二个拒绝其它其它日志输出-->
- <!--
- <filter type="log4net.Filter.LevelMatchFilter">
- <param name="LevelToMatch" value="WARN" />
- </filter>
- <filter type="log4net.Filter.DenyAllFilter" />-->
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
- </layout>
- </appender>
- <!-- levels: OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL -->
- <root>
- <priority value="ALL"/>
- <level value="ALL"/>
- <appender-ref ref="rollingAppender" />
- </root>
- </log4net>
3.3 配置log4net


- public static IHostBuilder CreateHostBuilder(string[] args) =>
- Host.CreateDefaultBuilder(args)
- .ConfigureLogging(logging => //支持IOC控制反转
- {
- logging.AddFilter("System", LogLevel.Warning);
- logging.AddFilter("Microsoft", LogLevel.Warning);
- logging.AddLog4Net();
- })
- .ConfigureWebHostDefaults(webBuilder =>
- {
- webBuilder.UseStartup<Startup>();
- });
- }
到此,一套最基础的webapi环境已搭建完成。
Core WebApi项目快速入门(一):环境部署的更多相关文章
- Core WebApi项目快速入门(二):Filter详解
Core的核心是DI,面向AOP的编程方式.在.NetCore中AOP的实现很大程度上依赖于Filter.下面就Core WebApi中的Filter进行举例. 其中鉴权中心我个人认为是比较重要的概念 ...
- Core WebApi项目快速入门(三):踩坑笔记
目前做公司一个项目,遇到了一些坑.跟大家分享,避免再次采坑. 1. 服务端发布应用报错 在windows server上发布程序报错.系统缺少更新包. https://support.microsof ...
- ASP.NET Core WebApi 项目部署到 IIS 服务器的总结
Point: - ASP.NET Core WebApi 项目 - 发布到 IIS 服务器 1. 选择 File System 2. 输入要发布到的路径 # 其它默认,直接发布 3. 打开 IIS,添 ...
- 【个人笔记】003-PHP基础-01-PHP快速入门-03-PHP环境搭建
003-PHP基础-01-PHP快速入门 03-PHP环境搭建 1.客户端(浏览器) IE FireFox CHROME Opera Safari 2.服务器 是运行网站的基本 是放置程序代码的地方 ...
- 如何在启用JWT Token授权的.NET Core WebApi项目中下载文件
背景 前几天,做项目的时候遇到一个文件下载的问题.当前系统是一个前后端分离的项目,前端是一个AngularJs项目, 后端是一个.NET Core WebApi项目.后端的Api项目使用了Jwt To ...
- Spring第二篇【Core模块之快速入门、bean创建细节、创建对象】
前言 上篇Spring博文主要引出了为啥我们需要使用Spring框架,以及大致了解了Spring是分为六大模块的-.本博文主要讲解Spring的core模块! 搭建配置环境 引入jar包 本博文主要是 ...
- ASP.NET Core 3.0 WebApi 系列【1】创建ASP.NET Core WebApi 项目
目录 写在前面 一.运行环境 二.项目搭建 三.测试 API 四.基础知识 五.写在最后 写在前面 C#语言可以创建RESTful服务,被称作WebApi.在这里总结学习使用支持创建.读取.更新.删除 ...
- Elasticsearch快速入门和环境搭建
内容概述 什么是Elasticsearch,为什么要使用它? 基础概念简介 节点(node) 索引(index) 类型映射(mapping) 文档(doc) 本地环境搭建,创建第一个index 常用R ...
- Spring Boot微服务电商项目开发实战 --- 多环境部署配置、端口号统一配置及Dubbo提供者消费者实现
昨天已经搭建好了SpringBoot基于Maven的基础父子级项目,今天开始进入项目分模块及分布式实现.首先我们基于昨天的项目,在父级工程下建lyn-sys,lyn-customer,lyn-good ...
随机推荐
- IDEA中创建父子工程与maven打包Springboot聚合工程报错程序包不存在问题处理
公司新项目需使用java技术栈,便使用IDEA搭建了一个多SpringBoot项目的聚合工程,因为初次使用,遇到了很多问题,maven打包时各种报错,在网上查了好多终于解决了,为巩固记忆,特作此记录. ...
- [学习笔记] Tarjan算法求桥和割点
在之前的博客中我们已经介绍了如何用Tarjan算法求有向图中的强连通分量,而今天我们要谈的Tarjan求桥.割点,也是和上篇有博客有类似之处的. 关于桥和割点: 桥:在一个有向图中,如果删去一条边,而 ...
- 【C语言高级编程】你见过长度为0的数组吗?管你信不信,看就完了!
一.什么是零长度数组 零长度数组就是长度为0的数组. ANSI C 标准规定:定义一个数组时,数组的长度必须是一个常数,即数组的长度在编译的时候是确定的.在ANSI C 中定义一个数组的方法如下: 类 ...
- allure测试报告
首先如果你没有安装 pytest 库的话,先使用 pip 安装一下: pip install pytest 另外还需要安装 pytest 支持 allure 报告的插件库: pip install a ...
- 第二十五章 ansible基础
一.Ansible概述 1.什么是Ansible Ansible是一个自动化统一配置管理工具,自动化主要体现在Ansible集成了丰富模块以及功能组件,可以通过一个命令完成一系列的操作,进而能减少重复 ...
- JavaWeb学习笔记(六)jsp
第六章.jsp 1.什么是jsp jsp:java server pages,java的服务器页面 作用:代替Servlet回传HTML页面的数据 因为Servlet程序回传HTML页面的数据很繁琐, ...
- mysql 架构简介
mysql的逻辑架构 第一层:进行连接处理.权限认证.安全校验等. 当客户端(应用)连接到mysql服务器时,服务器会创建使用一个线程进行处理连接(少量的线程服务大量的连接),随后服务器需要对该连接进 ...
- 接收某项课程id,通过axios发起get请求,由于携带params出现的问题(已解决)
问题:在最新课程页面(NewBook.vue)点击某一项课程,通过传递该课程的 id 跳转至课程详情页(Bookdetail.vue),采取的跳转方式是声明式导航,即 <router-link ...
- JavaScript正则表达式随笔
概念先行. 正则表达式:又称规则表达式.常用于检索,替换符合某种符合(规则)的文本. 组成:普通字符和元字符,普通字符就是一个普通的查找串,如abc,原字符具有特殊含义. 这里研究的是JavaScri ...
- IntelliJ IDEA 使用指南:集成GIT客户端
一.安装GIT客户端 首先需要在本地安装好GIT的客户端. GIT客户端官网下载地址:https://www.git-scm.com/download/ 安装说明 Linux系统安装 使用yum指令 ...