將組態遷移至 ASP.NET Core

作者:Steve SmithScott Addie

在上一篇文章中,我們開始將 ASP.NET MVC 專案移轉至 ASP.NET Core MVC。 在本文中,我們會移轉組態。

檢視或下載範例程式碼 \(英文\) (如何下載)

設定組態

ASP.NET Core 不再使用舊版 ASP.NET 使用的 Global.asaxweb.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 檔案新增至專案的根目錄:

Add 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) 以及環境變數。