將組態遷移至 ASP.NET Core
在上一篇文章中,我們開始將 ASP.NET MVC 專案移轉至 ASP.NET Core MVC。 在本文中,我們會移轉組態。
檢視或下載範例程式碼 \(英文\) (如何下載)
設定組態
ASP.NET Core 不再使用舊版 ASP.NET 使用的 Global.asax 和 web.config 檔案。 在舊版的 ASP.NET 中,應用程式啟動邏輯會放在 Global.asax 內的 Application_StartUp
方法中。 稍後,在 ASP.NET MVC 中,Startup.cs
檔案已包含在專案的根目錄中,並在應用程式啟動時呼叫。 ASP.NET Core 完全採用此方法,方法是將所有啟動邏輯放在 Startup.cs
檔案中。
ASP.NET Core 中的 web.config 檔案也已被取代。 現在可以設定組態本身,做為 Startup.cs
中所述之應用程式啟動程序的一部分。 設定仍可以使用 XML 檔案,但通常 ASP.NET Core 專案會將組態值存放在 JSON 格式的檔案中,例如 appsettings.json
。 ASP.NET Core 的組態系統也可以輕鬆存取環境變數,這可為特定於環境的值提供更安全且更健全的位置。 對於不應該簽入原始檔控制的連接字串和 API 金鑰等秘密尤其如此。 若要深入了解 ASP.NET Core 中的組態,請參閱組態。
警告
本文使用本機資料庫,其不需要使用者進行驗證。 實際執行應用程式應該使用可用的最安全驗證流程。 如需已部署測試與實際執行應用程式驗證的詳細資訊,請參閱安全驗證流程。
在本文中,我們會從上一篇文章中部分移轉 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 以及環境變數。