這篇文章,我將帶領大家學習ASP.NET Core中的launchSettings.json檔案,為了學習它,我們打開之前建的空白模板的ASP.NET Core專案,

從上面的圖片中你可以看到,我們專案的屬性中有一個launchSettings.json檔案,那么我們來一起學習這個重要的檔案吧,
launchSettings.json檔案
當我們使用Visual Studio或者.NET Core CLI運行專案的時候,就會使用到LaunchSettings.json檔案中的這些設定,
你需要特別記住的一點就是:LaunchSettings.json檔案,僅僅只是在本地的電腦上使用,這也就是意味著,當我們發布ASP.NET Core應用程式到生產環境的時候,這個檔案是不需要的,
當你有一些特別的設定,你需要你的應用程式能夠在發布部署的時候使用,那么你應該把這些設定寫在appSettings.json檔案中,通常,在ASP.NET Core中,組態檔都是寫在appsettings.json檔案中的,我將會在下篇文章中講到appsettings.json檔案,
launchSettings.json檔案中的配置資訊
當你打開launchSettings.json檔案,就會看到了這些配置資訊:

在上面的圖片中,你可以看到profiles有兩個部分,一個是IIS Express,還有一個是EmptyTemplateCoreApp.
你需要記住的是:當你按CTRL+F5或者直接按F5,運行程式的時候,那么profiles中的”commandName”: “IIS Express”就會被使用,與此同時,當你使用.NET Core CLI運行ASP.NET Core應用程式的時候,那么profile中的“commandName”:”Project”這段配置就會被使用,
然而,當你想要選擇哪個組態檔將會被使用,可以選擇Visual Studio中的這個下拉框選項:

commandName屬性的值,可以是下面幾個:
- IIS Express
- IIS
- Project
CommandName屬性的值,以及專案檔案中的AspNetCoreHostingModel 節點的值,將會決定應用程式使用的是內部服務器,還是外部服務器(也叫反向代理服務器),請看下面的表格,

修改Startup類中的Configure方法
修改Configure方法,以便在瀏覽器中顯示程式運行的時候的作業行程:

案例一:
當我們使用Project作為命令列屬性的值的時候,ASP.NET Core是會忽略AspNetCoreHostingModel節點中的值的,然后Kestrel服務器就是唯一的服務器來托管運行程式了,以及處理HTTP請求,我們如下操作:選擇【EmptyTemplateCoreApp】

然后運行應用程式:

任務管理器中可以看到:使用的主機是ApplicationFrameHost.exe
現在改變一下專案檔案,在里面添加:<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>

運行的結果還是一樣,這是因為:CommandName的屬性是Project,然后就會忽略AspNetCoreHostingModel節點的配置,這個時候,Kestrel是唯一的服務器,來托管程式,并處理HTTP請求,這也就驗證了表格中的第一條,
案例二:
CommandName選擇IIS Express,并且AspNetCoreHostingModel選擇InProcess,那么IIS Express將會是唯一的服務器,來托管程式,處理HTTP請求了,

運行程式:可以看到這時候,行程名稱就是iisexpres了,

案例三:
ComandName選擇IIS Express ,AspNetCoreHostingModel選擇OutOfProcess.這個時候,ASP.NET Core使用IIS Express作為外部服務器,Kestrel服務器作為內部服務器,外部服務器IIS Express將會接收HTTP請求,然后傳遞給內部服務器來處理,我們來驗證一下:

運行程式:


怎樣在Visual Studio 中使用圖形用戶界面來獲取設定CommandName?
右鍵專案--選址屬性,然后找到Debug,就看到了:

使用圖形界面,我們同樣可以改變launchSettings.json中的設定,這里你可以看到環境變數“ASPNETCORE_ENVIRONMENT”的值是”Development”,當你運行專案的時候,你可以改變成“Staging”或者“Production”,當然你還可以自己添加環境變數,并且你還可以根據環境變數做一些事情,例如:

上面的圖片中,將會檢查是否是開發環境,如果是,就執行開發環境下的例外頁面,在后面的文章中,將會講到更多的環境變數,
下篇文章將要講到ASP.NET Core appsettings.json檔案,在這篇文章我已經詳細介紹了launchSettings.json檔案,大家清楚了么?
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/47002.html
標籤:.NET Core
