向net core 3.0进击——April.WebApi从2.2爬到3.0
前言
在之前對Swagger的變化做了調整后,就開始想著要不把之前的工程升級得了,這樣就還是個demo工程,來做各種測試(當然還是因為懶),這就有了今天這個比較折騰的一步。
升級之路
首先,April.WebApi工程右鍵->屬性,將之前的net core 2.2升級到3.0,然后對每個類庫項目右鍵->屬性,將net standard 2.0升級到2.1(這個應該是沒啥)。
升級之后,我們重新生成一下,咦,沒報錯美滋滋。
因為之前有過創建3.0的工程例子,所以對于Startup這塊兒還是要調整下的。
問題1
因為net core3.0之后,對于Api可能是調整了(因為沒創建過Mvc工程),所以這個地方不再模糊的使用Mvc了。
修改后
因為部分方法被棄用,因為3.0是一個嶄新的開始。
好了,修改完啟動文件,我們來愉快的運行吧。
問題2
修改后
這個問題修改完后,我們再來運行下程序。
問題3
這個是什么問題呢,Session也不讓這樣玩了,也不是,主要問題呢是現在不需要WebHost了,Session的實現不明確了應該是,所以我們來該升級的升級,該調整的調整,其他工程引入的同樣需要更新下。
修改
這個地方因為我在看到錯誤后直接來這升級了,沒有截到圖,升級的庫名Microsoft.VisualStudio.Web.CodeGeneration.Design。
修改Program內容如下:
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>();});}補充
在下面的執行時,我發現使用Session會有問題,具體什么問題呢,因為3.0多了一個注冊項,所以session的代碼調整如下,這里注意下UseSession的位置要在Redirection之后。
public void ConfigureServices(IServiceCollection services){…#region Sessionservices.AddDistributedMemoryCache();services.AddSession(options =>{options.Cookie.Name = "April.Session";options.IdleTimeout = TimeSpan.FromSeconds(2000);//設置session的過期時間options.Cookie.HttpOnly = true;//設置在瀏覽器不能通過js獲得該cookie的值,實際場景根據自身需要options.Cookie.IsEssential = true;});#endregion…}public void Configure(IApplicationBuilder app, IWebHostEnvironment env){…app.UseHttpsRedirection();app.UseSession();app.UseRouting();…}修改完成后,我們再來運行下程序。
問題4
修改
這個我不需要翻譯軟件都能看到,這什么什么不讓返回了,emm。
讓我們忘記剛才的難受,繼續運行程序吧。
問題5
這個烏壓壓一大片我還以為瀏覽器崩了呢,仔細一看,好吧,swagger的事,這里就不多說了。
修改
在我以為能看到友好的Swagger的時候,現實給了我一巴掌。
問題6
這個問題,依然是想用擴展的DI導致的,AspectCore這塊兒的東西暫時先屏蔽了,后續找到解決方法之后再處理吧。
修改
經過以上一堆折騰后,我們終于迎來了Swagger歡迎的樣子,不容易。
測試
為什么還要帶上這個呢,我也搞不懂,習慣了測試一下功能吧,但是這里就不一一截圖了,太麻煩(當然測試也只是簡單的執行了下之前的測試方法)。
log4net 功能正常
swagger功能正常
cache功能正常
session功能正常
cookie功能正常
sqlsugar功能正常
aop日志功能正常
redis功能正常
攔截器與中間層功能正常
如果有我沒試到的問題,可以給我留言,因為一個人的力量終究還是有那么點兒局限的。
小結
在覆蓋原代碼的時候我想了一會兒,我擔心萬一有人在用呢,這樣覆蓋后會不會對人有影響,但是轉念一想,唉,這東西怕是都沒人用吧,自己鼓搗的東西,還是折騰點兒好,折騰使人進步,折騰活躍大腦,折騰…,編不下去了,以后再鼓搗新東西就是直接net core3.0上搞起了。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的向net core 3.0进击——April.WebApi从2.2爬到3.0的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 向net core 3.0进击——Swa
- 下一篇: C#刷遍Leetcode面试题系列连载(