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控制器的代码如下:

using Microsoft.AspNetCore.Mvc;

namespace MyWebApi.Controllers
{
    [Route("api/[controller]/[action]")]
    public class AdminController : Controller
    {

        [HttpGet]
        public string Login(string pwd)
        {
            if(pwd == "123456")
            {
                return "登录成功!";
            }
            return "登录失败";
        }
    }
}

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

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

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

 

appsettings.json代码如下:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",

  //配置端口号
  "Kestrel": {
    "Endpoints": {
      "Https": {
        "Url": "https://*:5000"
      },
      "Http": {
        "Url": "http://*:5050"
      }
    }
  }
}

上面配置文件修改了默认端口号为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

  • 8
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
基于C#语言的ASP.NET 2.0动态网站开发基础教程,课程列表如下: ASP.NET 2.0动态网站开发基础教程(C#) 第01章 ASP.NET2.0基础 Framework Web Form(共32页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第02章 HTML和脚本语言 VBScript javaScript(共21页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第03章 ASP.NET2.0语言程序设计基础 数据类型 控制语句 类和对象(共28页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第04章 ASP.NET2.0常用对象 response request server session cookie(共17页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 验证(共28页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第06章 ASP.NET数据库编程 ADO ODBC DataSet OLE XML(共27页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第07章 ASP.NET数据库高级操作 数据绑定 GridView(共19页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第08章 导航与用户控件 母版页 统一站点主题(共10页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第09章 ASP.NET Web服务 传送数据(共9页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第10章 配置ASP.NET应用程序 Global.asax Web config 缓存技术(共12页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第11章 提高ASP.NET应用程序的安全性 身份验证和授权 SSL加密(共9页).ppt
好的,我来给你提供一个详细的ASP.NET Core中使用WebSocket的案例。 **1. 创建 ASP.NET Core 项目** 首先需要创建一个ASP.NET Core 项目,可以选择空项目或Web应用程序模板。 **2. 添加 WebSocket 支持** 在ASP.NET Core中,使用WebSocket需要添加Microsoft.AspNetCore.WebSockets包。可以通过NuGet包管理器或手动添加对项目的引用来添加此包。 **3. 添加 WebSocket 控制器** 在 ASP.NET Core 中,WebSocket 控制器是处理 WebSocket 请求的类。可以创建一个控制器类并继承自 Microsoft.AspNetCore.Mvc.Controller 类,然后添加 WebSocket 相关的方法。 ```csharp using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Http; using System.Net.WebSockets; using System.Threading.Tasks; namespace WebSocketExample.Controllers { [Route("api/[controller]")] public class WebSocketController : Controller { [HttpGet("{id}")] public async Task Get(string id) { if (HttpContext.WebSockets.IsWebSocketRequest) { WebSocket webSocket = await HttpContext.WebSockets.AcceptWebSocketAsync(); await Echo(webSocket); } else { HttpContext.Response.StatusCode = 400; } } private async Task Echo(WebSocket webSocket) { var buffer = new byte[1024 * 4]; WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), System.Threading.CancellationToken.None); while (!result.CloseStatus.HasValue) { await webSocket.SendAsync(new ArraySegment<byte>(buffer, 0, result.Count), result.MessageType, result.EndOfMessage, System.Threading.CancellationToken.None); result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), System.Threading.CancellationToken.None); } await webSocket.CloseAsync(result.CloseStatus.Value, result.CloseStatusDescription, System.Threading.CancellationToken.None); } } } ``` 在上面的代码中,我们创建了一个名为 WebSocketController 的控制器,并添加了一个 Get 方法来处理 WebSocket 请求。 在 Get 方法中,我们首先检查当前请求是否是 WebSocket 请求,如果是,则接受 WebSocket 连接,并调用 Echo 方法来处理 WebSocket 消息。如果不是,则返回状态码 400。 在 Echo 方法中,我们接收 WebSocket 传来的消息,然后立即将其回发给客户端。该方法会一直循环,直到收到一个 CloseStatus 告知连接需要关闭,然后关闭连接。 **4. 配置应用程序启动** 现在我们需要配置应用程序以启用 WebSocket 支持。在 Startup.cs 文件中,添加以下代码来启用 WebSocket 支持: ```csharp public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseWebSockets(); app.UseMvc(); } ``` **5. 测试 WebSocket** 现在,我们可以使用任何 WebSocket 客户端来测试上面的代码。例如,我们可以使用 JavaScript 来创建一个 WebSocket 客户端。 ```javascript var socket = new WebSocket("ws://localhost:5000/api/websocket/1"); socket.onmessage = function (evt) { console.log(evt.data); }; socket.onopen = function (evt) { console.log("WebSocket opened."); socket.send("Hello from client."); }; ``` 在上面的 JavaScript 代码中,我们创建了一个 WebSocket 连接,并在连接打开时发送一条消息。当收到消息时,我们将其输出到控制台。 **6. 运行应用程序** 现在我们可以运行应用程序,并使用 WebSocket 客户端连接到我们的 WebSocket 服务。运行应用程序后,控制台应该显示类似以下内容: ``` WebSocket opened. Hello from client. ``` 接着,WebSocket 服务将回发相同的消息,并在控制台输出以下内容: ``` Hello from client. ``` 这就是使用ASP.NET Core创建WebSocket服务的详细步骤和示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YuanlongWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值