在上一篇文章中,我們開始 將 ASP.NET MVC 專案移轉至 ASP.NET Core MVC。 在本文中,我們會移轉組態。
設定組態
ASP.NET Core 不再使用舊版 ASP.NET 使用的 Global.asax 和 web.config 檔案。 在舊版的 ASP.NET 中,應用程式啟動邏輯會放在 Application_StartUp
Global.asax 內的方法中。 稍後,在 ASP.NET MVC中, Startup.cs
檔案已包含在專案的根目錄中,並在應用程式啟動時呼叫。 ASP.NET Core 完全採用此方法,方法是將所有啟動邏輯放在 檔案中 Startup.cs
。
web.config 檔案也已取代在 ASP.NET Core 中。 設定本身現在可以設定,做為 中所述 Startup.cs
之應用程式啟動程式的一部分。 組態仍然可以使用 XML 檔案,但通常 ASP.NET Core 專案會將組態值放在 JSON 格式的檔案中,例如 appsettings.json
。 ASP.NET Core 的組態系統也可以輕鬆存取環境變數,為環境特定值提供 更安全且健全的位置 。 對於不應該提交到原始檔控制的連接字串和 API 金鑰等秘密,這尤其如此。 請參閱 設定 以深入瞭解 ASP.NET Core 中的設定。
警告
本文使用本機資料庫,其不需要使用者進行驗證。 實際執行應用程式應該使用可用的最安全驗證流程。 如需已部署測試與實際執行應用程式驗證的詳細資訊,請參閱安全驗證流程。
若要設定組態,請將下列建構函式和 屬性新增至 Startup.cs
位於專案根目錄中的檔案:
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
請注意, Startup.cs
此時檔案不會編譯,因為我們仍然需要新增下列 using
語句:
using Microsoft.Extensions.Configuration;
appsettings.json
使用適當的項目範本,將檔案新增至專案的根目錄:
從 web.config 移轉組態設定
我們的 ASP.NET MVC 專案在 元素中包含 web.config<connectionStrings>
中所需的資料庫連接字串。 在我們的 ASP.NET Core 專案中,我們會將此資訊儲存在 檔案中 appsettings.json
。 開啟 appsettings.json
,並請注意它已經包含下列內容:
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\\MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Connection=True;"
}
}
}
在上面描述的反白顯示列中,將資料庫的名稱從 _CHANGE_ME 變更為資料庫的名稱。
總結
ASP.NET Core 會將應用程式的所有啟動邏輯放在單一檔案中,其中可以定義和設定必要的服務和相依性。 它會以彈性的組態功能取代 web.config 檔案,以利用各種檔格式,例如 JSON 以及環境變數。