欢迎大家阅读《朝夕Net社区技术专刊》第1期 原文是我在知乎发表的,现在在这里分享!

我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为首期读者,文末福利不要错过哦!本文通过5大部分进行解读:

01PART Core3.1WebApi准备环境

本地演示环境:Visual Studio2019 --- Vsersion:16.4.4 + NetCore3.1.2

个人建议使用Vs2019 升级最新版即可!

Core环境下载地址:https://dotnet.microsoft.com/download/dotnet-core/3.1;SDK 3.1.102: 包含的运行时/.NET Core运行时3.1.2/http://ASP.NET Core运行时3.1.2 桌面运行时3.1.2

http://ASP.NET Core Runtime: 使您可以运行现有的Web /服务器应用程序。在Windows上,包含.NET Core Runtime和IIS支持的主机捆绑包。

02PART 创建项目:

图1

图2

03PART项目结构解读:

1.创建的CoreWebApi项目其实是一个控制台项目;

2.launchSettings.json就是配置项目启动类型的配置文件;

3.Controllers:控制器,创建Api就是从这里添加;

4.Startup:可以选择的包括ConfigureServices方法来配置应用程序的服务。必须包括一个 Configure 方法来创建应用程序的请求处理管ConfigureServices和Configure在用用程序启动时由运行时调用:

【如下图】

详解1

可以在项目中为不同的环境分别定义独立的启动类Startup(如, StartupDevelopment),系统启动时会选择适当的启动类。http://ASP.NET 并不关心 Startup 类是不是定义为 public,如果它符合命名规范,http://ASP.NET 将继续加载它。如果有多个 Startup 类,也不会触发异常,http://ASP.NET 将基于命名空间选择其中一个(匹配项目的根命名空间的启动类优先,否则使用第一个按字母排列的命名空间中的启动类)。

详解2

ConfigureServices 方法是可选的。在 Configure 方法之前调用,用来配置应用程序的服务。它的配置选项是按约定设置的。向服务容器添加服务,使他们在项目和配置方法中可用。这些服务是通过依赖注入或从IApplicationBuilder.ApplicationServices解决实现。最大的特性是,需要大量的设置,可用过IServiceCollection的扩展方法上添加[服务]。比方说要使用Swagger 就必须要先注册服务到容器;

详解3

web host通过启动类的构造函数提供了一些有效可用服务。应用程序还可以通过ConfigureServices增加额外的服务。主机配置的服务和ConfigureServices增加的额外的服务在整个应用程序中都是有效可用的。

04PART 新增控制器Api:

创建控制器的可能比较慢,均属正常,请耐心等待;

CoreWebApi 严格遵循RESTFull风格;

05PART 启动/部署/调试:

1.Vs启动webApi;不做详解;

2.命令启动:dotnet Zhaoxi.Core.WebApi.dll --urls="http://*:8004" -- ip="127.0.0.1" --port= 8004

注释:必须要定位到根目录下 然后CMD执行命令:dotnet dll文件全名称 --urls="http://*:端口号" --ip="自定义IP地址" --port= 端口号

3. 部署IIS,需要发布项目:发布成文件系统;

4.IIS增加网站:写入网站名称,物理路径指向刚刚发布的文件夹;

5.指向程序集---基本设置;

6.选择无代码托管:

注意:如果没有安装运行时需要下载运行时:

https://dotnet.microsoft.com/download/dotnet-core/3.1 选择以下安装;

7.安装完毕以后,安装之后在IIS模块会有一个:AspNetCoreModuleV2;

图1

图2

8.调用WebApi:即可,如果是命令启动;访问路径必须和命令启动指定的iP/端口一致;

下期预告

【朝夕Net社区技术专刊】第2期:Corre3.1WebApi配置集成日志/配置Swagger

最新文章

  1. 推荐Linux管理员不可不知十大PHP安全要点 - SCutePHP
  2. Problem with WinRM on Exchange 2013 Management Shell and Exchange Toolbox on a new exchange 2013 with CAFE and BE on single server installation
  3. iOS开发之图片分辨率与像素对齐
  4. 常见Android Native崩溃及错误原因
  5. HBase与MongDB等NoSQL数据库对照
  6. STAF自动化测试框架
  7. sed 替换
  8. net farmework 4安装不了 原因是 HRESULT 0xc8000222
  9. Python之路【第八篇】:堡垒机实例以及数据库操作
  10. SQL对Xml字段的操作
  11. IOC框架Ninject实践总结
  12. ListView.setOnItemClickListener无效
  13. Java基础学习笔记九 Java基础语法之this和super
  14. 福州大学W班-团队作业-随堂小测(同学录)成绩
  15. Ubuntu 16.04 + ROS Kinetic 机器人操作系统学习镜像分享与使用安装说明
  16. Beanstalkd 一个高性能分布式内存队列系统
  17. final关键字的几种用法
  18. JavaScript Node节点笔记
  19. ES6-你不知道的箭头函数
  20. ASP.NET MVC概述及第一个MVC程序

热门文章

  1. lambda表达式入门详解
  2. 201771010113 李婷华 《面向对象程序设计(java)》第十五周总结
  3. 【带着canvas去流浪(15)】threejs fundamentals翻译系列1-scene graph
  4. Mysql常用sql语句(20)- 子查询重点知识
  5. 多线程高并发编程(9) -- CopyOnWrite写入时复制
  6. JMeter-结合BeanShell生成MD5加密数据写入数据库
  7. js对页面中的内容进行拼音搜索,只对后台已经传过来的页面数据进行索引
  8. 使用plupload实现多文件上传,自定义参数
  9. 这或许是最详细的JUC多线程并发总结
  10. React:form