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服务

  1. public void ConfigureServices(IServiceCollection services)
  2. {
  3. services.AddSwaggerGen(s =>
  4. {
  5. s.SwaggerDoc("V1", new OpenApiInfo
  6. {
  7. Title = "test",
  8. Version = "version-01",
  9. Description = "我的第一个API"
  10. });
  11. });
  12. services.AddControllers();
  13. }

2.3 添加swagger中间件

  1. app.UseSwagger();
  2. app.UseSwaggerUI(s =>
  3. {
  4. s.SwaggerEndpoint("/swagger/V1/swagger.json", "test");
  5. });

3. 日志配置

3.1 引入log4net及扩展库dll

3.2 加入log4net.config配置文件

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <log4net>
  3. <!-- Define some output appenders -->
  4. <appender name="rollingAppender" type="log4net.Appender.RollingFileAppender">
  5. <file value="log\log.txt" />
  6.  
  7. <!--追加日志内容-->
  8. <appendToFile value="true" />
  9.  
  10. <!--防止多线程时不能写Log,官方说线程非安全-->
  11. <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  12.  
  13. <!--可以为:Once|Size|Date|Composite-->
  14. <!--Composite为Size和Date的组合-->
  15. <rollingStyle value="Composite" />
  16.  
  17. <!--当备份文件时,为文件名加的后缀-->
  18. <datePattern value="yyyyMMdd.TXT" />
  19.  
  20. <!--日志最大个数,都是最新的-->
  21. <!--rollingStyle节点为Size时,只能有value个日志-->
  22. <!--rollingStyle节点为Composite时,每天有value个日志-->
  23. <maxSizeRollBackups value="20" />
  24.  
  25. <!--可用的单位:KB|MB|GB-->
  26. <maximumFileSize value="3MB" />
  27.  
  28. <!--置为true,当前最新日志文件名永远为file节中的名字-->
  29. <staticLogFileName value="true" />
  30.  
  31. <!--输出级别在INFO和ERROR之间的日志-->
  32. <filter type="log4net.Filter.LevelRangeFilter">
  33. <param name="LevelMin" value="ALL" />
  34. <param name="LevelMax" value="FATAL" />
  35. </filter>
  36. <!--必须结合起来用,第一个只过滤出WARN,第二个拒绝其它其它日志输出-->
  37. <!--
  38. <filter type="log4net.Filter.LevelMatchFilter">
  39. <param name="LevelToMatch" value="WARN" />
  40. </filter>
  41. <filter type="log4net.Filter.DenyAllFilter" />-->
  42.  
  43. <layout type="log4net.Layout.PatternLayout">
  44. <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
  45. </layout>
  46. </appender>
  47. <!-- levels: OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL -->
  48. <root>
  49. <priority value="ALL"/>
  50. <level value="ALL"/>
  51. <appender-ref ref="rollingAppender" />
  52. </root>
  53. </log4net>

3.3 配置log4net

  1. public static IHostBuilder CreateHostBuilder(string[] args) =>
  2. Host.CreateDefaultBuilder(args)
  3. .ConfigureLogging(logging => //支持IOC控制反转
  4. {
  5. logging.AddFilter("System", LogLevel.Warning);
  6. logging.AddFilter("Microsoft", LogLevel.Warning);
  7. logging.AddLog4Net();
  8. })
  9. .ConfigureWebHostDefaults(webBuilder =>
  10. {
  11. webBuilder.UseStartup<Startup>();
  12. });
  13. }

到此,一套最基础的webapi环境已搭建完成。

Core WebApi项目快速入门(一):环境部署的更多相关文章

  1. Core WebApi项目快速入门(二):Filter详解

    Core的核心是DI,面向AOP的编程方式.在.NetCore中AOP的实现很大程度上依赖于Filter.下面就Core WebApi中的Filter进行举例. 其中鉴权中心我个人认为是比较重要的概念 ...

  2. Core WebApi项目快速入门(三):踩坑笔记

    目前做公司一个项目,遇到了一些坑.跟大家分享,避免再次采坑. 1. 服务端发布应用报错 在windows server上发布程序报错.系统缺少更新包. https://support.microsof ...

  3. ASP.NET Core WebApi 项目部署到 IIS 服务器的总结

    Point: - ASP.NET Core WebApi 项目 - 发布到 IIS 服务器 1. 选择 File System 2. 输入要发布到的路径 # 其它默认,直接发布 3. 打开 IIS,添 ...

  4. 【个人笔记】003-PHP基础-01-PHP快速入门-03-PHP环境搭建

    003-PHP基础-01-PHP快速入门 03-PHP环境搭建 1.客户端(浏览器) IE FireFox CHROME Opera Safari 2.服务器 是运行网站的基本 是放置程序代码的地方 ...

  5. 如何在启用JWT Token授权的.NET Core WebApi项目中下载文件

    背景 前几天,做项目的时候遇到一个文件下载的问题.当前系统是一个前后端分离的项目,前端是一个AngularJs项目, 后端是一个.NET Core WebApi项目.后端的Api项目使用了Jwt To ...

  6. Spring第二篇【Core模块之快速入门、bean创建细节、创建对象】

    前言 上篇Spring博文主要引出了为啥我们需要使用Spring框架,以及大致了解了Spring是分为六大模块的-.本博文主要讲解Spring的core模块! 搭建配置环境 引入jar包 本博文主要是 ...

  7. ASP.NET Core 3.0 WebApi 系列【1】创建ASP.NET Core WebApi 项目

    目录 写在前面 一.运行环境 二.项目搭建 三.测试 API 四.基础知识 五.写在最后 写在前面 C#语言可以创建RESTful服务,被称作WebApi.在这里总结学习使用支持创建.读取.更新.删除 ...

  8. Elasticsearch快速入门和环境搭建

    内容概述 什么是Elasticsearch,为什么要使用它? 基础概念简介 节点(node) 索引(index) 类型映射(mapping) 文档(doc) 本地环境搭建,创建第一个index 常用R ...

  9. Spring Boot微服务电商项目开发实战 --- 多环境部署配置、端口号统一配置及Dubbo提供者消费者实现

    昨天已经搭建好了SpringBoot基于Maven的基础父子级项目,今天开始进入项目分模块及分布式实现.首先我们基于昨天的项目,在父级工程下建lyn-sys,lyn-customer,lyn-good ...

随机推荐

  1. IDEA中创建父子工程与maven打包Springboot聚合工程报错程序包不存在问题处理

    公司新项目需使用java技术栈,便使用IDEA搭建了一个多SpringBoot项目的聚合工程,因为初次使用,遇到了很多问题,maven打包时各种报错,在网上查了好多终于解决了,为巩固记忆,特作此记录. ...

  2. [学习笔记] Tarjan算法求桥和割点

    在之前的博客中我们已经介绍了如何用Tarjan算法求有向图中的强连通分量,而今天我们要谈的Tarjan求桥.割点,也是和上篇有博客有类似之处的. 关于桥和割点: 桥:在一个有向图中,如果删去一条边,而 ...

  3. 【C语言高级编程】你见过长度为0的数组吗?管你信不信,看就完了!

    一.什么是零长度数组 零长度数组就是长度为0的数组. ANSI C 标准规定:定义一个数组时,数组的长度必须是一个常数,即数组的长度在编译的时候是确定的.在ANSI C 中定义一个数组的方法如下: 类 ...

  4. allure测试报告

    首先如果你没有安装 pytest 库的话,先使用 pip 安装一下: pip install pytest 另外还需要安装 pytest 支持 allure 报告的插件库: pip install a ...

  5. 第二十五章 ansible基础

    一.Ansible概述 1.什么是Ansible Ansible是一个自动化统一配置管理工具,自动化主要体现在Ansible集成了丰富模块以及功能组件,可以通过一个命令完成一系列的操作,进而能减少重复 ...

  6. JavaWeb学习笔记(六)jsp

    第六章.jsp 1.什么是jsp jsp:java server pages,java的服务器页面 作用:代替Servlet回传HTML页面的数据 因为Servlet程序回传HTML页面的数据很繁琐, ...

  7. mysql 架构简介

    mysql的逻辑架构 第一层:进行连接处理.权限认证.安全校验等. 当客户端(应用)连接到mysql服务器时,服务器会创建使用一个线程进行处理连接(少量的线程服务大量的连接),随后服务器需要对该连接进 ...

  8. 接收某项课程id,通过axios发起get请求,由于携带params出现的问题(已解决)

    问题:在最新课程页面(NewBook.vue)点击某一项课程,通过传递该课程的 id 跳转至课程详情页(Bookdetail.vue),采取的跳转方式是声明式导航,即 <router-link  ...

  9. JavaScript正则表达式随笔

    概念先行. 正则表达式:又称规则表达式.常用于检索,替换符合某种符合(规则)的文本. 组成:普通字符和元字符,普通字符就是一个普通的查找串,如abc,原字符具有特殊含义. 这里研究的是JavaScri ...

  10. IntelliJ IDEA 使用指南:集成GIT客户端

    一.安装GIT客户端 首先需要在本地安装好GIT的客户端. GIT客户端官网下载地址:https://www.git-scm.com/download/ 安装说明 Linux系统安装 使用yum指令 ...