.net core mvc啟動順序以及主要部件1

来源:https://www.cnblogs.com/lvshunbin/archive/2019/06/23/11072225.html
-Advertisement-
Play Games

首先我是新人一個寫這些東西也是為了增加記憶,有不對的地方請多多指教。 說回正題,打開Program.cs文件,看到在有個CrateWebHostBuilder方法它有個args的字元串數組參數,這個參數的主要作用是可以在用cmd啟動網站程式的時候在後面傳遞一些參數例如: 這個時候我們是可以註入ICo ...


   首先我是新人一個寫這些東西也是為了增加記憶,有不對的地方請多多指教。

說回正題,打開Program.cs文件,看到在有個CrateWebHostBuilder方法它有個args的字元串數組參數,這個參數的主要作用是可以在用cmd啟動網站程式的時候在後面傳遞一些參數例如:

c:\Users>E:\dotnetcore\demo\\bin\Debug\netcoreapp2.2\RazorMvcDemo1.dll connectionstring="server=.;database=test;uid=sa;pwd=123456"

這個時候我們是可以註入IConfiguration這個實例拿到connectionstring的值,例如:

public Startup(IConfiguration configuration)
{
     Console.WriteLine(configuration["connectionstring"]);
 }

CrateWebHostBuilder參數繼續看下去,CrateWebHostBuilder方法中有個WebHost.CreateDefaultBuilder(args),首先說說CreateDefaultBuilder是乾什麼的,其實這個方法主要就是IConfiguration的構建,轉到源代碼可以看見 第一行代碼創建了WebHostBuilder這個對象是貫穿整個CreateDefaultBuilder方法的核心,WebHostBuilder構建了IConfiguration實例以及基礎環境配置,請看下圖

 然後繼續往下,下麵的if中是對WebHostBuilder環境配置的補充,然後繼續就看見我們前面所提到的cmd配置的實現,在接下來是我們.net core 作為Kestrel啟動的配置請看下圖!

然後再下來是我們的主要配置部分,也就是appsettings.json文件的配置,appsettings.json文件分為兩個部分,1、直接就是appsettings.json文件。2、按照環境不同分別配置不同的appsettings.json配置,例如:我們的開發環境可以是這樣appsettings.Development.json,生成環境可以是appsettings.Production.json,預演環境也是同理,具體請看下圖:

再繼續往下看,接下來是我們的預設日記記錄配置,也就是我們平時在啟動.netcore mvc會看到在控制台和我們vs中的輸出以及調試視窗中會列印一些啟動信息和異常信息,其實就是我們接下來看到的日誌記錄,請看下圖:

 

最後就是我們的依賴註入容器和IIS配置;最後返回最開始創建的WebHostBuilder實例,請看下圖:

好了,暫時寫到這裡,後面再繼續分享Startup


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在Asp.Net網站開發的過程中,很多時候會遇到對象的序列化和反序列化操作,Newtonsoft.Json組件是專門用來序列化和反序列化操作的一個功能組件,引入這個DLL組件後,就可使用JsonConvert.DeserializeObject方法來反序列化字元串為對象,JsonConvert.De ...
  • 在Asp.Net網站開發的過程中,很多時候會遇到對象的序列化和反序列化操作,Newtonsoft.Json組件是專門用來序列化和反序列化操作的一個功能組件,引入這個DLL組件後,就可使用JsonConvert.SerializeObject方法來序列化C#的對象。JsonConvert.Serial ...
  • 在C#的List集合操作中,Last方法和LastOrDefault方法都會用來查找集合中最後一個符合條件的元素對象,但Last和LastOrDefault方法還是有差別的,建議使用LastOrDefault方法來操作,因為Last方法在未查到一條符合條件的對象的時候,將會直接拋出程式運行時異常。 ...
  • 一直想看看這部分內容,今天終於看到了。 vs2017調試通過。 記錄如下: 1、添加需要的provider,有點添加驅動的意思。右擊項目,NUGET “瀏覽”,“JetEntityFrameworkProvider”,安裝,如圖 完成後配置文件(控制台為app.config)中就會有這個驅動: 最好 ...
  • 前一篇提到WebHost.CreateDefaultBuilder(args)方法創建了WebHostBuilder實例,WebHostBuilder實例有三個主要功能 1、構建了IConfiguration實例和基礎環境配置,2、構建了IServiceCollection服務,也就是依賴註入的容器 ...
  • 在C#的List集合操作中,有時候需要查找到List集合中的最大值,此時可以使用List集合的擴展方法Max方法,Max方法有2種形式,一種是不帶任何參數的形式,適用於一些值類型變數的List集合,另一種是帶Lambda表達式書寫形式的,此方法可適用於獲取List集合中某一個屬性的最大值。 (1)不 ...
  • 在C#的List集合操作中,有時候需要判斷元素對象在List集合中第一次出現的索引位置信息,此時需要使用到List集合的IndexOf方法來判斷,如果元素存在List集合中,則IndexOf方法返回所在的索引位置信息,如果不存在則返回-1,IndexOf方法簽名為int IndexOf(T item ...
  • 在C#的List集合中,FirstOrDefault方法一般用來查找List集合中第一個符合條件的對象,如果未查到則返回相應預設值。其實如果要查找最後一個符合條件的List集合元素對象,可以使用LastOrDefault方法來實現,LastOrDefault方法的內部書寫形式為Lambda表示式的書 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...