需求

前几天,马老板给小明和小红一个“待办事项”网站,小明负责后端,小红负责前端,并要求网站可以同时在 Windows、和 Linux 上运行。

小明整理了一下“待办事项”的功能清单:

创建 Web 项目

aspnetcore使用教程(手把手教你AspNetCoreWebApi入门)(1)

测试 API

按 Ctrl F5 运行应用。 Visual Studio 启动浏览器并导航到 https://localhost:<port>/WeatherForecast,其中 <port> 是随机选择的端口号。

aspnetcore使用教程(手把手教你AspNetCoreWebApi入门)(2)

到目前为止,小明已经成功创建并运行了一个WebAPI项目。

项目结构

aspnetcore使用教程(手把手教你AspNetCoreWebApi入门)(3)

从这个图中可以看出WebApi项目主要由Program.cs,Startup.cs,appsettings.json,WeatherForecastcontroller.cs文件组成,那么现在我们一个一个介绍一下这几个文件主要由什么作用。

Program类

它是所有.net core程序的入口,定义了2个方法:Main() 和CreateHostBuilder();

public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .configureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); }

代码不复杂,创建泛型主机并运行。

Startup类

主要包括 ConfigureServices 方法以配置应用的服务和Configure 方法以创建应用的请求处理管道。

// 运行时将调用此方法。 使用此方法将服务添加到容器。 public void ConfigureServices(IServiceCollection services) { } // 运行时将调用此方法。 使用此方法来配置HTTP请求管道。 public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { }

appsettings.json

appsettings.json是在core中的配置文件,类似与以前asp.net中的web.config

WeatherForecastController.cs

就是一个控制器,就是处理 Web API 请求,派生自 ControllerBase 的控制器类。

[ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase

发布到IIS在 Windows Server 上安装.NET Core Hosting Bundle。

https://dotnet.microsoft.com/download/dotnet-core/3.1

创建 IIS 站点
  1. 在 IIS 服务器上,创建一个文件夹以包含应用已发布的文件夹和文件。 在接下来的步骤中,文件夹路径作为应用程序的物理路径提供给 IIS。
  2. 在 IIS 管理器中,打开“连接”面板中的服务器节点。 右键单击“站点”文件夹。 选择上下文菜单中的“添加网站”。
  3. 提供网站名称,并将“物理路径”设置为所创建应用的部署文件夹 。 提供“绑定”配置,并通过选择“确定”创建网站 。
发布和部署应用
  1. 将应用发布到一个文件夹。
  2. 文件夹的内容将移动到 IIS 站点的文件夹(IIS 管理器中站点的物理路径)。
小结

目前为止,小明创建并运行WebApi应用,并了解WebApi项目结构及各个文件的用途,然后把WebApi应用发布到IIS并可以在浏览器中访问它。小明摸了摸光滑的脑袋,打算先喝一杯咖啡让脑袋休息一下。

,