asp.net core 碰到的一些坑

前言


下面杂乱的记录了一些在实际开发中碰到一些浪费时间的“坑”,写给前行者。

格式有些乱,见谅。

1,HttpContext.Response.RegisterForDispose 事件

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

3,在 .net core 2.0 preview2 中,会自动读取appsettings.json到IConfiguration中去

4,在Library中,添加的资源文件设置如下:右键资源文件,选择属性,Build Action 中选择Embedded Resource即可。 然后使用Assembly.GetManifestResourceNames 和 GetManifestResourceStream 即可读取

5,小心==重载造成的死循环

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));

结果:第一行One,第二行Two。 select出的值依然是引用类型

在第三行list.Select(t => t.Name)后加上.ToArray(),可以避免这个情况 发生。

7,在MySql.Data 7.0.7-m61中,DbDataReader.Close()与DbDataReader.Dispose()不能真正关闭reader;IDataReader.Close()不起作用,但IDataReader.Dispose()起作用。解决办法,将其转换为MySqlDataReader,然后close。

//最新,在8.0.8-dmr版本中,会起作用。

8, 鼓励直接引用,比如ProjectA,使用到ProjectB与ProjectC,而ProjectB使用到ProjectC,那么在vs里,ProjectA直接引用ProjectB即可。但是鼓励也添加直接引用ProjectC。 事实上,在vs for mac中,不直接引用会导致intelligence失灵。2017-7-1

9, Visual studio 2017 Preview 2. 新建web项目,nuget bad request 400 错误。改语言为English。解决。 2017-6-19

10,asp.net core Authentication模块重构。原来Http.Feature和Http.Abstractions中的Authentication文件夹中的代码全部弃之不用。 转而集中到 Authentication.Abstractions中。完成了Http 与 Authentication的解耦。 2017-6-21

11,在json配置文件中,若属性为数字型,不可为空(""),会引发异常导致读不了,

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

13, 构造函数中使用到httpcontext,session等,一定要AddScope,而不是AddSigleton

14,有时候莫名其妙的话,特别是reference出问题的话,重启visual studio 2017.  2017-7-1

15,visual studio 2017 preview 4 总是需要rebuild,否则引用类库里的修改,不会体现

16,JwtBearerEvents 中的OnAuthenticationFailed 设置 StatusCode得到Kestrell抛出StatusCode cannot be set because the response has already started 异常。这也是因为 [Authority] 属性会调用Challenge,那里会设置statuscode,和 error head。 所以从返回的header中读取错误信息即可。OnAuthenticationFailed应该永远不使用。

17, IIS 配置时,权限要加上IIS_IUSRS Modify权限。

18, IIS外网无法访问时,检查如下:

1,访问权限。

2,防火墙,或者云计算机的控制台里的防火墙

3,netsh http show iplisten 查看是否有监听 ip地址,没有的话,使用netsh http add iplisten ipaddress=111.xxxx 来添加监听,这样请求才能到达iis

19,关于DataProtection的问题。部署在单机IIS上,可以按照文档进行即可。但如果要在多个IIS之间共享DataProtection(实际场景),则要如下。首先建立共享文件夹,用于存放DataProtection加密后的文件。然后,要指定key,如果不指定,则每次更换。key用Certification来指定。最后,指定ApplicationDataProtectionDiscriminator为同一个。代码如下:

services.AddDataProtection()

    .SetApplicationName("xxxx.yyyyy.zzz")

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

    .ProtectKeysWithCertificate("cert_thumbprint");

这三个配置将逻辑、物理位置、key三者设置相同,即可在IIS之间共享cookie等等加密后需要解密的。

ProtectKeysWithCertificate本机没问题,服务器上一直报错。解决办法,将证书存储在Root下,然后右键复制,再到MY下,粘贴。这样可能是能解决某个权限问题。

欢迎来访本人的github上项目:https://github.com/yzbai/HB.Framework,一个辅助最新asp.net core 2 的框架类库。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,175评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,674评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,151评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,597评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,505评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,969评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,455评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,118评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,227评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,213评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,214评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,928评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,512评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,616评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,848评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,228评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,772评论 2 339

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,525评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,555评论 18 139
  • 今天把基金申请发给了老师,希望能够顺利申请上。 写了写模型,准备去找老师讨论细节,但是又担心被骂……总觉得自己不够...
    愿不负时光阅读 182评论 0 0
  • enjoy功能流程图 核心页面流程 页面流程图
    LearningLynn阅读 438评论 0 0
  • 坐在溪边读你, 清澈的溪水是你空灵的文章。 鞠一捧清晨沁人的清凉, 滋润我干渴了一冬的诗行。 走在田畔读你, 无尽...
    一笑尘嚣远高宏宇阅读 196评论 5 8