需求
前幾天,馬老闆給小明和小紅一個“待辦事項”網站,小明負責後端,小紅負責前端,並要求網站可以同時在 Windows、和 Linux 上執行。
小明整理了一下“待辦事項”的功能清單:
- 獲取所有待辦事項
- 按 ID 獲取項
- 新增新項
- 更新現有項
- 刪除項
建立 Web 專案
- 從“檔案”選單中選擇“新建”>“專案” 。
- 選擇“ASP.NET Core Web 應用程式”模板,再單擊“下一步” 。
- 將專案命名為 App001,然後單擊“建立”。
- 在“建立新的 ASP.NET Core Web 應用程式”對話方塊中,確認選擇“.NET Core”和“ASP.NET Core 3.1” 。 選擇“API”模板,然後單擊“建立” 。
測試 API
按 Ctrl+F5 執行應用。 Visual Studio 啟動瀏覽器並導航到 https://localhost:
到目前為止,小明已經成功建立並執行了一個WebApi專案。
專案結構
從這個圖中可以看出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 站點
- 在 IIS 伺服器上,建立一個資料夾以包含應用已釋出的資料夾和檔案。 在接下來的步驟中,資料夾路徑作為應用程式的物理路徑提供給 IIS。
- 在 IIS 管理器中,開啟“連線”皮膚中的伺服器節點。 右鍵單擊“站點”資料夾。 選擇上下文選單中的“新增網站”。
- 提供網站名稱,並將“物理路徑”設定為所建立應用的部署資料夾 。 提供“繫結”配置,並通過選擇“確定”建立網站 。
釋出和部署應用
- 將應用釋出到一個資料夾。
- 資料夾的內容將移動到 IIS 站點的資料夾(IIS 管理器中站點的物理路徑)。
小結
目前為止,小明建立並執行WebApi應用,並瞭解WebApi專案結構及各個檔案的用途,然後把WebApi應用釋出到IIS並可以在瀏覽器中訪問它。小明摸了摸光滑的腦袋,打算先喝一杯咖啡讓腦袋休息一下。