向net core 3.0进击——April.WebApi从2.2爬到3.0
前言
在之前對(duì)Swagger的變化做了調(diào)整后,就開始想著要不把之前的工程升級(jí)得了,這樣就還是個(gè)demo工程,來做各種測(cè)試(當(dāng)然還是因?yàn)閼?#xff09;,這就有了今天這個(gè)比較折騰的一步。
升級(jí)之路
首先,April.WebApi工程右鍵->屬性,將之前的net core 2.2升級(jí)到3.0,然后對(duì)每個(gè)類庫項(xiàng)目右鍵->屬性,將net standard 2.0升級(jí)到2.1(這個(gè)應(yīng)該是沒啥)。
升級(jí)之后,我們重新生成一下,咦,沒報(bào)錯(cuò)美滋滋。
因?yàn)橹坝羞^創(chuàng)建3.0的工程例子,所以對(duì)于Startup這塊兒還是要調(diào)整下的。
問題1
因?yàn)閚et core3.0之后,對(duì)于Api可能是調(diào)整了(因?yàn)闆]創(chuàng)建過Mvc工程),所以這個(gè)地方不再模糊的使用Mvc了。
修改后
因?yàn)椴糠址椒ū粭売?#xff0c;因?yàn)?.0是一個(gè)嶄新的開始。
好了,修改完啟動(dòng)文件,我們來愉快的運(yùn)行吧。
問題2
修改后
這個(gè)問題修改完后,我們?cè)賮磉\(yùn)行下程序。
問題3
這個(gè)是什么問題呢,Session也不讓這樣玩了,也不是,主要問題呢是現(xiàn)在不需要WebHost了,Session的實(shí)現(xiàn)不明確了應(yīng)該是,所以我們來該升級(jí)的升級(jí),該調(diào)整的調(diào)整,其他工程引入的同樣需要更新下。
修改
這個(gè)地方因?yàn)槲以诳吹藉e(cuò)誤后直接來這升級(jí)了,沒有截到圖,升級(jí)的庫名Microsoft.VisualStudio.Web.CodeGeneration.Design。
修改Program內(nèi)容如下:
public class Program{public static void Main(string[] args){CreateHostBuilder(args).Build().Run();}public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();});}補(bǔ)充
在下面的執(zhí)行時(shí),我發(fā)現(xiàn)使用Session會(huì)有問題,具體什么問題呢,因?yàn)?.0多了一個(gè)注冊(cè)項(xiàng),所以session的代碼調(diào)整如下,這里注意下UseSession的位置要在Redirection之后。
public void ConfigureServices(IServiceCollection services){…#region Sessionservices.AddDistributedMemoryCache();services.AddSession(options =>{options.Cookie.Name = "April.Session";options.IdleTimeout = TimeSpan.FromSeconds(2000);//設(shè)置session的過期時(shí)間options.Cookie.HttpOnly = true;//設(shè)置在瀏覽器不能通過js獲得該cookie的值,實(shí)際場(chǎng)景根據(jù)自身需要options.Cookie.IsEssential = true;});#endregion…}public void Configure(IApplicationBuilder app, IWebHostEnvironment env){…app.UseHttpsRedirection();app.UseSession();app.UseRouting();…}修改完成后,我們?cè)賮磉\(yùn)行下程序。
問題4
修改
這個(gè)我不需要翻譯軟件都能看到,這什么什么不讓返回了,emm。
讓我們忘記剛才的難受,繼續(xù)運(yùn)行程序吧。
問題5
這個(gè)烏壓壓一大片我還以為瀏覽器崩了呢,仔細(xì)一看,好吧,swagger的事,這里就不多說了。
修改
在我以為能看到友好的Swagger的時(shí)候,現(xiàn)實(shí)給了我一巴掌。
問題6
這個(gè)問題,依然是想用擴(kuò)展的DI導(dǎo)致的,AspectCore這塊兒的東西暫時(shí)先屏蔽了,后續(xù)找到解決方法之后再處理吧。
修改
經(jīng)過以上一堆折騰后,我們終于迎來了Swagger歡迎的樣子,不容易。
測(cè)試
為什么還要帶上這個(gè)呢,我也搞不懂,習(xí)慣了測(cè)試一下功能吧,但是這里就不一一截圖了,太麻煩(當(dāng)然測(cè)試也只是簡(jiǎn)單的執(zhí)行了下之前的測(cè)試方法)。
log4net 功能正常
swagger功能正常
cache功能正常
session功能正常
cookie功能正常
sqlsugar功能正常
aop日志功能正常
redis功能正常
攔截器與中間層功能正常
如果有我沒試到的問題,可以給我留言,因?yàn)橐粋€(gè)人的力量終究還是有那么點(diǎn)兒局限的。
小結(jié)
在覆蓋原代碼的時(shí)候我想了一會(huì)兒,我擔(dān)心萬一有人在用呢,這樣覆蓋后會(huì)不會(huì)對(duì)人有影響,但是轉(zhuǎn)念一想,唉,這東西怕是都沒人用吧,自己鼓搗的東西,還是折騰點(diǎn)兒好,折騰使人進(jìn)步,折騰活躍大腦,折騰…,編不下去了,以后再鼓搗新東西就是直接net core3.0上搞起了。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的向net core 3.0进击——April.WebApi从2.2爬到3.0的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 向net core 3.0进击——Swa
- 下一篇: Bumblebee微服务网关之负载策略