码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C# 零基础搭建一个简单的Asp.Net Core WebAip


    目录

    一、创建aps.net core Web Aip

    1、创建一个新的Asp.Net Core WebApi 项目

    2、尝试启动Asp.Net Core WebApi 项目

    二、自定义一个API接口

    1、添加一个控制器

     2、编写一个登录接口:Login

    3、appsettings.json配置文件修改端口号

    4、运行程序,测试自定义api接口

    三、把 WebAip 发布到服务器上

     1、通过文件系统发布到服务器

    2、通过Docker发布(建议使用)


    下面介绍的vs2022 基于.NET 6 搭建的一个简单的Asp.Net Core WebAip

    一、创建aps.net core Web Aip

    1、创建一个新的Asp.Net Core WebApi 项目

    启动vs2022,在开始页面选择“创建新项目(N)”。

    选择从C#的asp.net core WbeApi 作为一个初始的WebApi模板。

    点击下一步,给项目一个项目名称,并且选择我们要存放项目的目录。

     点击下一步,选择项目的目标框架,vs2022已经对.NET 6.0 长期支持了,如果你是vs2019或者其他版本,你也可以选择.NET 5.0 或者.NET Core,最后点击创建。 

     

    创建好的项目我们可以看到主要有程序依赖包文件(后续需要用到的第三方文件包)、控制器代码文件夹(代码放在这里面)、配置文件(项目基本配置信息)、程序入口文件(也就是所谓的Main函数)组成

    2、尝试启动Asp.Net Core WebApi 项目

    点击启动键,以Debug的方式启动项目

     因为在新建项目的时候我勾选了配置HTTPS,第一次启动会有ssl证书提示,直接点击是就行,如果无需https可忽略:

     

     

     因为我在创建的时候勾选了 启用OpenApi 支持 ,默认程序模板会自动使用swagger中间件,启动后浏览器打开的是一个Swagger页面和一个控制台页面。

    swagger显示我们当前的接口:WeatherForecast

    控制台运行的是其实是项目编译后生成的MyWebApi.exe程序

    我们可以看到默认的https使用7050端口,http使用5050端口,这个是在Properties文件夹下的launchSettings.json文件里配置的:

    我们是选择项目名称MyWebApi来启动的,所以默认端口是7050和5050,还会带有一个控制台应用输出,如果选择IIS Express来启动的话,这里https默认端口是44316,http端口是11535,是没有控制台页面的:

    当然这只是开发环境的端口配置,不会应用到生产环境,建议通过配置文件的方式配置端口,类似这样:

    ASP.NET Core 项目模板默认使用 Kestrel Web 服务器,所以这里配置的是Kestrel的端口地址,

    有关kestrel可参考微软官方文档ASP.NET Core 中的 Kestrel Web 服务器 | Microsoft Learn

    二、自定义一个API接口

    1、添加一个控制器

    在控制器 Controllers 文件夹下右键 > 添加 > 控制器 

    添加一个空的控制器:

     给控制器起一个名字:AdminController.cs

     2、编写一个登录接口:Login

    AdminController.cs控制器的代码如下:

    1. using Microsoft.AspNetCore.Mvc;
    2. namespace MyWebApi.Controllers
    3. {
    4. [Route("api/[controller]/[action]")]
    5. public class AdminController : Controller
    6. {
    7. [HttpGet]
    8. public string Login(string pwd)
    9. {
    10. if(pwd == "123456")
    11. {
    12. return "登录成功!";
    13. }
    14. return "登录失败";
    15. }
    16. }
    17. }

     [Route("api/[controller]/[action]")] 表示自定义api的地址:/api/控制器名称/j接口名称  ,以当前控制器为例:api/Admin/Login?pwd=111

    [HttpGet]表示请求以Get方式进行

    3、appsettings.json配置文件修改端口号

     

    appsettings.json代码如下:

    1. {
    2. "Logging": {
    3. "LogLevel": {
    4. "Default": "Information",
    5. "Microsoft.AspNetCore": "Warning"
    6. }
    7. },
    8. "AllowedHosts": "*",
    9. //配置端口号
    10. "Kestrel": {
    11. "Endpoints": {
    12. "Https": {
    13. "Url": "https://*:5000"
    14. },
    15. "Http": {
    16. "Url": "http://*:5050"
    17. }
    18. }
    19. }
    20. }

    上面配置文件修改了默认端口号为5050和5000

    4、运行程序,测试自定义api接口

    以debug的方式启动程序:

    然后在浏览器输入接口地址:https://localhost:5000/api/admin/login

    可以看到接口已经通了,在没有传pwd参数的时候,接口返回:登录失败 

    我们传一个正确的pwd参数试一下:https://localhost:5000/api/admin/login?PWD=123456

    接口返回:登录成功!至此一个简单的Asp.Net Core WebAip就搭建完成了

    三、把 WebAip 发布到服务器上

     1、通过文件系统发布到服务器

    点击项目右键 > 发布

    选择 文件夹,点击下一步

    选择需要发布文件夹位置,点击完成

    点击 发布

    发布成功输出这里会有提示

    点击目标位置,找到发布好的文件系统

     把文件夹下的文件全部复制到服务器上,然后再当前文件夹下通过cmd运行MyWebApi.exe 

    如果运行时出现如上报错,提示系统必须要安装.net 6 的运行框架

    用浏览器打开提示给的下载链接:下载 ASP.NET Core 6.0 Runtime (v6.0.11) - Windows x64 Installerz

     下载好安装后继续运行MyWebApi.exe ,正常情况下webapi就正常运行起来了:

    2、通过Docker发布(建议使用)

    虽然.NET core实现了跨平台开发部署,但是如果通过文件系统发布到一个新的服务器上,还是要下载配置.net相关的运行框架,对于新手来说还是比较困难,所以建议使用docker方式直接生成docker镜像,通过服务器端拉取镜像,运行镜像容器就可以实现直接运行webapi程序。

    通过docker方式发布需要服务器和本地都安装有docker程序,关于docker的下载安装可参考官网:Docker: Accelerated, Containerized Application Development

    具体如何通过docker发布WebApi程序请参考:https://blog.csdn.net/lwpoor123/article/details/127900973

  • 相关阅读:
    Vue3快速上手
    C/C++模板类模板与函数模板区别,以及用法详解
    计算机毕业设计 基于SpringBoot的医院档案管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
    意外发现腾讯T4手码《SpringMVC源码解析》,如获至宝,果断收藏
    spring之bean的生命周期
    【一起学Java-第八篇】Java语言类的特性详解
    带你了解微信新版本的几个实用功能
    【NLP】第12章 检测客户情绪以做出预测
    Frida安装到使用一目了然
    Zookeeper的会话管理和读写流程
  • 原文地址:https://blog.csdn.net/lwpoor123/article/details/127789441
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号