asp.net core 碰到的一些坑

前言


下面雜亂的記錄了一些在實際開發(fā)中碰到一些浪費時間的“坑”,寫給前行者刚盈。

格式有些亂胎许,見諒找前。

1丈屹,HttpContext.Response.RegisterForDispose 事件

2调俘,IApplicationLifetime.ApplicationStopping.Register(OnShutdown,toDispose);

3,在 .net core 2.0 preview2 中旺垒,會自動讀取appsettings.json到IConfiguration中去

4彩库,在Library中,添加的資源文件設(shè)置如下:右鍵資源文件先蒋,選擇屬性骇钦,Build Action 中選擇Embedded Resource即可。 然后使用Assembly.GetManifestResourceNames 和 GetManifestResourceStream 即可讀取

5竞漾,小心==重載造成的死循環(huán)

6眯搭,Linq中的Select引用Trick窥翩,Select出來的依然是引用

List list = new List();

list.Add(new Entity() { Name = "One" });

IEnumerable list2 = list.Select(t => t.Name);

Console.WriteLine(list2.ElementAt(0));

list.ElementAt(0).Name = "Two";

Console.WriteLine(list2.ElementAt(0));

結(jié)果:第一行One,第二行Two鳞仙。 select出的值依然是引用類型

在第三行l(wèi)ist.Select(t => t.Name)后加上.ToArray()寇蚊,可以避免這個情況 發(fā)生。

7繁扎,在MySql.Data 7.0.7-m61中幔荒,DbDataReader.Close()與DbDataReader.Dispose()不能真正關(guān)閉reader糊闽;IDataReader.Close()不起作用梳玫,但IDataReader.Dispose()起作用。解決辦法右犹,將其轉(zhuǎn)換為MySqlDataReader提澎,然后close。

//最新念链,在8.0.8-dmr版本中盼忌,會起作用。

8掂墓, 鼓勵直接引用谦纱,比如ProjectA,使用到ProjectB與ProjectC君编,而ProjectB使用到ProjectC跨嘉,那么在vs里,ProjectA直接引用ProjectB即可吃嘿。但是鼓勵也添加直接引用ProjectC祠乃。 事實上,在vs for mac中兑燥,不直接引用會導(dǎo)致intelligence失靈亮瓷。2017-7-1

9, Visual studio 2017 Preview 2. 新建web項目降瞳,nuget bad request 400 錯誤嘱支。改語言為English。解決挣饥。 2017-6-19

10斗塘,asp.net core Authentication模塊重構(gòu)。原來Http.Feature和Http.Abstractions中的Authentication文件夾中的代碼全部棄之不用亮靴。 轉(zhuǎn)而集中到 Authentication.Abstractions中馍盟。完成了Http 與 Authentication的解耦。 2017-6-21

11茧吊,在json配置文件中贞岭,若屬性為數(shù)字型八毯,不可為空(""),會引發(fā)異常導(dǎo)致讀不了瞄桨,

12话速,使用serviceCollection.Configure, 一定要 serviceCollection.AddOptions()

13, 構(gòu)造函數(shù)中使用到httpcontext芯侥,session等泊交,一定要AddScope,而不是AddSigleton

14柱查,有時候莫名其妙的話廓俭,特別是reference出問題的話,重啟visual studio 2017. ?2017-7-1

15唉工,visual studio 2017 preview 4 總是需要rebuild研乒,否則引用類庫里的修改,不會體現(xiàn)

16淋硝,JwtBearerEvents 中的OnAuthenticationFailed 設(shè)置 StatusCode得到Kestrell拋出StatusCode?cannot?be?set?because?the?response?has?already?started 異常雹熬。這也是因為 [Authority] 屬性會調(diào)用Challenge,那里會設(shè)置statuscode谣膳,和 error head竿报。 所以從返回的header中讀取錯誤信息即可。OnAuthenticationFailed應(yīng)該永遠不使用继谚。

17烈菌, IIS 配置時,權(quán)限要加上IIS_IUSRS Modify權(quán)限犬庇。

18僧界, IIS外網(wǎng)無法訪問時,檢查如下:

1臭挽,訪問權(quán)限捂襟。

2,防火墻欢峰,或者云計算機的控制臺里的防火墻

3葬荷,netsh http show iplisten 查看是否有監(jiān)聽 ip地址,沒有的話纽帖,使用netsh http add iplisten ipaddress=111.xxxx 來添加監(jiān)聽宠漩,這樣請求才能到達iis

19,關(guān)于DataProtection的問題懊直。部署在單機IIS上扒吁,可以按照文檔進行即可。但如果要在多個IIS之間共享DataProtection(實際場景)室囊,則要如下雕崩。首先建立共享文件夾魁索,用于存放DataProtection加密后的文件。然后盼铁,要指定key粗蔚,如果不指定,則每次更換饶火。key用Certification來指定鹏控。最后,指定ApplicationDataProtectionDiscriminator為同一個肤寝。代碼如下:

services.AddDataProtection()

? ? .SetApplicationName("xxxx.yyyyy.zzz")

? ? .PersistKeysToFileSystem(new?DirectoryInfo(@"\\server\share")

? ? .ProtectKeysWithCertificate("cert_thumbprint");

這三個配置將邏輯当辐、物理位置、key三者設(shè)置相同醒陆,即可在IIS之間共享cookie等等加密后需要解密的瀑构。

ProtectKeysWithCertificate本機沒問題裆针,服務(wù)器上一直報錯刨摩。解決辦法,將證書存儲在Root下世吨,然后右鍵復(fù)制澡刹,再到MY下,粘貼耘婚。這樣可能是能解決某個權(quán)限問題罢浇。

歡迎來訪本人的github上項目:https://github.com/yzbai/HB.Framework,一個輔助最新asp.net core 2 的框架類庫沐祷。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嚷闭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子赖临,更是在濱河造成了極大的恐慌胞锰,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兢榨,死亡現(xiàn)場離奇詭異嗅榕,居然都是意外死亡,警方通過查閱死者的電腦和手機吵聪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門凌那,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吟逝,你說我怎么就攤上這事帽蝶。” “怎么了块攒?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵励稳,是天一觀的道長金砍。 經(jīng)常有香客問我,道長麦锯,這世上最難降的妖魔是什么恕稠? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮扶欣,結(jié)果婚禮上鹅巍,老公的妹妹穿的比我還像新娘。我一直安慰自己料祠,他們只是感情好骆捧,可當(dāng)我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著髓绽,像睡著了一般敛苇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上顺呕,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天枫攀,我揣著相機與錄音,去河邊找鬼株茶。 笑死来涨,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的启盛。 我是一名探鬼主播蹦掐,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼僵闯!你這毒婦竟也來了卧抗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤鳖粟,失蹤者是張志新(化名)和其女友劉穎社裆,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體牺弹,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡浦马,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了张漂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晶默。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖航攒,靈堂內(nèi)的尸體忽然破棺而出磺陡,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布币他,位于F島的核電站坞靶,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蝴悉。R本人自食惡果不足惜彰阴,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拍冠。 院中可真熱鬧尿这,春花似錦、人聲如沸庆杜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晃财。三九已至叨橱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間断盛,已是汗流浹背罗洗。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留郑临,地道東北人栖博。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓屑宠,卻偏偏與公主長得像厢洞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子典奉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,647評論 2 354

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法躺翻,類相關(guān)的語法,內(nèi)部類的語法卫玖,繼承相關(guān)的語法公你,異常的語法,線程的語...
    子非魚_t_閱讀 31,624評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理假瞬,服務(wù)發(fā)現(xiàn)陕靠,斷路器,智...
    卡卡羅2017閱讀 134,652評論 18 139
  • 今天把基金申請發(fā)給了老師脱茉,希望能夠順利申請上剪芥。 寫了寫模型,準備去找老師討論細節(jié)琴许,但是又擔(dān)心被罵……總覺得自己不夠...
    愿不負時光閱讀 186評論 0 0
  • enjoy功能流程圖 核心頁面流程 頁面流程圖
    LearningLynn閱讀 445評論 0 0
  • 坐在溪邊讀你税肪, 清澈的溪水是你空靈的文章。 鞠一捧清晨沁人的清涼, 滋潤我干渴了一冬的詩行益兄。 走在田畔讀你锻梳, 無盡...
    一笑塵囂遠高宏宇閱讀 201評論 5 8