ASP .NET Core Web API_ 01_項(xiàng)目創(chuàng)建及基礎(chǔ)配置

項(xiàng)目創(chuàng)建

  1. ASP .NET Core Web Application 設(shè)置為Blog.Api

  2. 選擇Empty+No Authentication

  3. 添加.NET Core類(lèi)庫(kù),Blog.Core + Blog.Infrastructure

    • Infrastructure 依賴(lài) Core

    • Api 依賴(lài) Infrastructure + Core

Program + Startup

  1. Program進(jìn)行基礎(chǔ)設(shè)施的配置灶挟,很少發(fā)生變化

    • HTTP Server

    • 集成 IIS

    • 配置信息來(lái)源

  2. Startup 配置自定義行為盖桥,可能經(jīng)常發(fā)生變化

    • 組件 服務(wù) 功能

    • 中間件管道

  3. Startup.cs

    • ConfigureServices 所有程序級(jí)的依賴(lài)項(xiàng)都可以在這里注冊(cè)到默認(rèn)的IoC容器里, 把它們添加到IServiceCollection即可

    • Configure 配置應(yīng)該遵循Add/Use的風(fēng)格樣式, 首先定義需要什么, 然后定義如何使用它.是真正負(fù)責(zé)配置HTTP請(qǐng)求管道的方法, 并且運(yùn)行時(shí)也需要它

管道請(qǐng)求

基礎(chǔ)配置

  1. 運(yùn)行時(shí)環(huán)境 ASPNETCORE_ENVIRONMENT

    • ASP.NET Core還允許我們按約定為指定環(huán)境建立單獨(dú)的啟動(dòng)配置. 啟動(dòng)類(lèi)可以通過(guò)這個(gè)函數(shù)定義UseStartup(startupAssemblyName: xxx); 運(yùn)行時(shí)會(huì)在這個(gè)指定的組件查找叫做Startup, Startup[環(huán)境名]的類(lèi), 其中[環(huán)境名]就是ASPNETCORE_ENVIRONMENT這個(gè)環(huán)境變量的值. 如果能找到指定環(huán)境的類(lèi), 那么它將覆蓋默認(rèn)的啟動(dòng)類(lèi).

    • 例如:環(huán)境變量值如果是Development的話, 那么運(yùn)行時(shí)就會(huì)嘗試尋找Startup和StartupDevelopment類(lèi), 該約定在啟動(dòng)類(lèi)里面的方法名上也有效, 環(huán)境特定的啟動(dòng)類(lèi)里的兩個(gè)方法分別是 Configure[環(huán)境名]和Configure[環(huán)境名]Services.

    • ASPNETCORE_ENVIRONMENT環(huán)境變量 Production Development Staging 沒(méi)有設(shè)置則使用Production

   public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                //.UseStartup<Startup>();
                .UseStartup(typeof(StartupDevelopment).GetTypeInfo().Assembly.FullName);
    
image
image
image
  1. HTTPS

    • 微軟建議所有應(yīng)用調(diào)用HTTPS重定向中間件壶唤,來(lái)把所有的HTTP請(qǐng)求重定向?yàn)镠TTPS

    • Startup:

      • ConfigureServices方法注冊(cè),并配置端口及狀態(tài)碼

services.AddHttpsRedirection(options =>

            {

                options.RedirectStatusCode = StatusCodes.Status307TemporaryRedirect;

                options.HttpsPort = 5001;

            });

    * Configure方法使用該中間件: app.UseHttpsRedirection()
  1. HSTS (HTTP Strict Transport Sercurity Protocol)

    • 微軟建議在生產(chǎn)環(huán)境(production)下啟用HSTS

    • Startup:

      • ConfigureServices方法注冊(cè)并配置 HSTS

             //HSTS 只配置在生產(chǎn)環(huán)境

            services.AddHsts(options =>

            {

                options.Preload = true;

                options.IncludeSubDomains = true;

                options.MaxAge = TimeSpan.FromDays(60);

                options.ExcludedHosts.Add("example.com");

                options.ExcludedHosts.Add("www.example.com");

            });

  * Configure方法使用該中間件: app.UseHsts()
  1. launchSettings.json
  • 開(kāi)發(fā)時(shí)只保留console,其余刪除
{
  "profiles": {
    "Blog.Api": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "http://localhost:5000/api/posts",
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市宠进,隨后出現(xiàn)的幾起案子鸠补,更是在濱河造成了極大的恐慌萝风,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件紫岩,死亡現(xiàn)場(chǎng)離奇詭異规惰,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)泉蝌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)歇万,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人梨与,你說(shuō)我怎么就攤上這事堕花。” “怎么了粥鞋?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)瞄崇。 經(jīng)常有香客問(wèn)我呻粹,道長(zhǎng),這世上最難降的妖魔是什么苏研? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任等浊,我火速辦了婚禮,結(jié)果婚禮上摹蘑,老公的妹妹穿的比我還像新娘筹燕。我一直安慰自己,他們只是感情好衅鹿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布撒踪。 她就那樣靜靜地躺著,像睡著了一般大渤。 火紅的嫁衣襯著肌膚如雪制妄。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天泵三,我揣著相機(jī)與錄音耕捞,去河邊找鬼。 笑死烫幕,一個(gè)胖子當(dāng)著我的面吹牛俺抽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播较曼,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼磷斧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起瞳抓,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤埃疫,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后孩哑,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體栓霜,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年横蜒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胳蛮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡丛晌,死狀恐怖仅炊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情澎蛛,我是刑警寧澤抚垄,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站谋逻,受9級(jí)特大地震影響呆馁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜毁兆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一浙滤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧气堕,春花似錦纺腊、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至骗爆,卻和暖如春次氨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背摘投。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工煮寡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人犀呼。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓幸撕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親外臂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子坐儿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容