dudu

写好代码,一切随之而来

上一页 1 2 3 4 5 6 ··· 83 下一页

2019年10月19日

.NET Core 中读取 Request.Headers 的姿势

摘要:Request.Headers 的类型是 IHeaderDictionary 接口,对应的实现类是 HeaderDictionary 。HeaderDictionary 实际就是一个用于 保存 StringValues 的 KeyValuePair 。通过索引器访问时,如果对应的值不存在,会返回 StringValues.Empty ,所以不需要进行 null 引用检查。索引器访问实际就是 TryGetValue + StringValues.Empty 。 阅读全文

posted @ 2019-10-19 09:45 dudu 阅读(2563) 评论(2) 推荐(2) 编辑

2019年9月29日

.NET Core NuGet 多项目套餐打包的正确姿势

摘要:NuGet 默认只支持一个菜一个菜打包,不支持套餐打包。当对一个 csproj 项目进行 nuget 打包时(比如使用 dotnet pack 命令),只会将当前项目 build 出来的 dll 程序集文件打包进 nupkg 文件,而所引用项目的 dll 文件不会被打包进去。要解决这个问题需要在 csproj 文件中添加专门的 msbuild 配置,这篇随笔分享一下刚学到的新姿势。 阅读全文

posted @ 2019-09-29 12:13 dudu 阅读(1021) 评论(4) 推荐(6) 编辑

2019年9月27日

.NET Core 内置的 System.Text.Json 使用注意

摘要:System.Text.Json 是 .NET Core 3.0 新引入的高性能 json 解析、序列化、反序列化类库,武功高强,但毕竟初入江湖,炉火还没纯青,使用时需要注意,以下是我们在实现使用中遇到的一下问题。 阅读全文

posted @ 2019-09-27 14:33 dudu 阅读(5736) 评论(15) 推荐(7) 编辑

2019年9月16日

EF Core 3.0 Preview 9 的2个小坑

摘要:之前我们的数据库服务器使用的是 SQL Server 2008 R2 ,由于从 EF Core 3.0 Preview 6 开始不支持 UseRowNumberForPaging ,只能停留在 EF Core 3.0 Preview 5 ,无法继续升级。后来终于将数据库升级到了 SQL Server 2016 ,赶紧将 EF Core 升级到最新版 3.0 Preview 9 ,结果却发现了 EF Core 3.0 Preview 9 的2个小坑。 阅读全文

posted @ 2019-09-16 11:39 dudu 阅读(1106) 评论(10) 推荐(3) 编辑

2019年8月20日

.NET Core 序列化对象输出字节数大小比较

摘要:写代码验证了一下 .NET Core 中序列化对象输出字节数大小,.NET Core 版本是 3.0.100 preview8 013656 ,对象属性使用了 Guid 与 DateTime 类型,胜出的是 Newtonsoft.Json.Bson ,序列化输出的字节数是 。 更新:后来同事用 "M 阅读全文

posted @ 2019-08-20 18:40 dudu 阅读(813) 评论(1) 推荐(2) 编辑

2019年7月22日

C# params 可变参数使用注意

摘要:今天在一个 .NET Core 项目中调用一个自己实现的使用 params 可变参数的方法时触发了 null 引用异常,原以为是方法中没有对参数进行 null 值检查引起的,于是加上 check null 代码: 结果却出人意料, null 引用异常继续,仔细看异常 stack 才发现原来 null 阅读全文

posted @ 2019-07-22 22:32 dudu 阅读(616) 评论(4) 推荐(3) 编辑

ASP.NET Core 模型验证的一个小小坑

摘要:今天在我们的一个项目中遇到一个 asp.net core 模型验证(model validation)的小问题。当模型属性的类型是 bool ,而提交上来的该属性值是 null ,asp.net core 在模型绑定时会使用该属性的默认值(这很好),但是除此之外 asp.net core 做了一个额 阅读全文

posted @ 2019-07-22 12:13 dudu 阅读(580) 评论(5) 推荐(2) 编辑

2019年6月26日

ASP.NET Core 中使用负载均衡时获取客户端 IP

摘要:在使用负载均衡的情况下,通过 context.Connection.RemoteIpAddress 获取到的是负载均衡的 IP 地址,需要通过 X-Forwarded-For 请求头才能获取到客户端的真实 IP 。之前采用的方式是自己直接获取 X-Forwarded-For 请求头。现在改用 asp.net core 内置的 Forwarded Headers Middleware 来实现 阅读全文

posted @ 2019-06-26 12:09 dudu 阅读(722) 评论(5) 推荐(3) 编辑

2019年6月11日

移花接木:借助 IViewLocationExpander 更换 ASP.NET Core View Component 视图路径

摘要:端午节在家将一个 asp.net 项目向 asp.net core 迁移时遇到了一个问题,用 view component 取代 Html.RenderAction 之后,运行时 view component 找不到视图文件。原先用的是 Html.RenderAction ,视图都放在 Controller 对应的视图路径,对于 AggSiteController ,Html.RenderAction 的视图都放在 /Views/AggSite/ 文件夹中,换成 view component 之后,在 AggSiteController 中运行的 view component 却把 /Views/AggSite/ 置之度外 阅读全文

posted @ 2019-06-11 09:55 dudu 阅读(533) 评论(0) 推荐(3) 编辑

2019年6月7日

.NET Core 中使用 Humanizer 显示友好时间格式

摘要:今天在将一个 .net framework 项目迁移至 .net core 过程中在迁移到显示友好时间格式(比如“1分钟前”,“1小时前”)代码时,找了找看有没有对应的开源库,结果找到了 Humanizer ,顺手体验了一下,感觉不错,在这篇随笔中记录一下。 阅读全文

posted @ 2019-06-07 22:48 dudu 阅读(639) 评论(0) 推荐(3) 编辑

2019年6月1日

ASP.NET Core SameSite 设置引起 Cookie 在 QQ 浏览器中不起作用

摘要:最近在发布了基于 ASP.NET Core 实现的新版登录页面之后,陆陆续续地接到用户反馈登录时 Antiforgery Token 总是验证失败。今天在 QQ 浏览器中将内核模式设置为“总是使用 IE 内核”重现了问题,通过浏览器的开发者工具查看 cookie 情况,打开登录页时 antiforgery cookie 已发送给了浏览器 阅读全文

posted @ 2019-06-01 15:14 dudu 阅读(1318) 评论(0) 推荐(3) 编辑

2019年5月18日

ASP.NET Core 3.0 自动挡换手动挡:在 Middleware 中执行 Controller Action

摘要:由于遭遇 SqlClient 的性能问题,向 .NET Core 3.0 的升级工作被迫提前了。在升级过程中遇到了一个问题,我们在 Razor Class Library 中实现的自定义错误页面无法在 ASP.NET Core 3.0 Preview 5 中正常工作,问题原因详见博问"属性路由在 ASP.NET Core 3.0 中不起作用"。由于属性路由不起作用的问题没找到解决方法,于是被迫采用另外一种解决方法:在中间件中调用 Razor Class Library 中的 Controller Action 显示自定义错误页面 阅读全文

posted @ 2019-05-18 17:52 dudu 阅读(1901) 评论(9) 推荐(7) 编辑

2019年5月17日

dotnet pack 打包文件版本号引起 "Could not load file or assembly" 问题

摘要:如果不是遇到,真的不会想到,代码世界的问题真是千奇百怪,这次遇到的是 dotnet pack 打包文件版本号引起的问题。之前进行 nuget 打包都是在 Visual Studio build 时进行,版本号时通过 .csproj 中的 VersionPrefix 指定,没遇到问题。最近,改为通过 shell 脚本在 linux 上打包,开始的 shell 脚本是怎么写的 阅读全文

posted @ 2019-05-17 14:30 dudu 阅读(481) 评论(0) 推荐(3) 编辑

2019年5月15日

坑暗花明:又遇 .NET Core 中 System.Data.SqlClient 查询缓慢的问题

摘要:这两天我们又在另外一个 ASP.NET Core 2.2 项目中也遇到了查询 100 数据库记录速度慢(需要4~6秒)的问题,而且所查询的数据库表数据量并不是很大。通过 EF Core 的 日志记录发现耗时发生在 Executed DbCommand 时,耗时发生点与之前的情况不一样 阅读全文

posted @ 2019-05-15 09:28 dudu 阅读(2631) 评论(10) 推荐(8) 编辑

2019年5月9日

.NET Core 3.0 Preview 5 亮点之一:发布单文件可执行程序

摘要:在阅读 Announcing .NET Core 3.0 Preview 5 时发现了 .NET Core 3.0 Preview 5 的一个新特性 —— Publishing Single EXEs ,可以通过 dotnet publish 命令将整个 .net core 应用发布为一个可执行文件。一个期待很久的特性,终于随着 .NET Core 3.0 Preview 5 来了,赶紧体验一下。 阅读全文

posted @ 2019-05-09 12:08 dudu 阅读(1338) 评论(9) 推荐(4) 编辑

2019年5月5日

一次 .NET Core 中玩锁的经历:ManualResetEventSlim, Semaphore 与 SemaphoreSlim

摘要:最近同事对 .net core memcached 缓存客户端 EnyimMemcachedCore 进行了高并发下的压力测试,发现在 linux 上高并发下使用 async 异步方法读取缓存数据会出现大量失败的情况,比如在一次测试中,100万次读取缓存,只有12次成功,999988次失败,好恐怖 阅读全文

posted @ 2019-05-05 17:40 dudu 阅读(875) 评论(2) 推荐(4) 编辑

2019年5月4日

corefx 源码学习:NetworkStream.ReadAsync 是如何从 Socket 异步读取数据的

摘要:最近遇到 NetworkStream.ReadAsync 在 Linux 上高并发读取数据的问题,由此激发了阅读 corefx 中 System.Net.Sockets 实现源码(基于 corefx 2.2)的兴趣。这篇随笔是阅读 NetworkStream.ReadAsync 相关源码的简单笔记,基于在 Linux 上运行的场景。 阅读全文

posted @ 2019-05-04 15:29 dudu 阅读(369) 评论(2) 推荐(0) 编辑

关于 IIS 上运行 ASP.NET Core 站点的“HTTP 错误 500.19”错误

摘要:昨天回答了博问中的一个问题 —— “HTTP 错误 500.19 - Internal Server Error dotnetcore”,今天在这篇随笔中时候事后诸葛亮地小结一下。服务器是 Windows Server 2008 R2 ,ASP.NET Core 版本是 2.1 ,错误信息:“HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效” 阅读全文

posted @ 2019-05-04 09:55 dudu 阅读(8211) 评论(6) 推荐(8) 编辑

2019年4月29日

下单快发货慢:一个 JOIN SQL 引起 SqlClient 读取数据慢的奇特问题

摘要:最近遇到一个非常奇特的问题,在一个 ASP.NET Core 项目中从 SQL Server 2008 R2 中查询获取 100 条记录竟然耗时 10 多秒,如果是查询本身慢,那到不是什么奇特的问题。说它非常奇特是因为耗时主要发生在 SqlDataReader 读取数据时,开始怀疑是 EF Core 的问题,通过在 EF Core 源码中打点,定位到耗时发生在 _dataReader.ReadAsync 处 阅读全文

posted @ 2019-04-29 23:43 dudu 阅读(634) 评论(2) 推荐(2) 编辑

2019年4月28日

ASP.NET Core 2.2 项目升级至 3.0 备忘录

摘要:将 ASP.NET Core 2.2 迁移至 ASP.NET Core 3.0 需要注意的地方记录在这篇随笔中以备忘。TargetFramework 改为 netcoreapp3.0 ,从 PackageReference 中移除 Microsoft.AspNetCore.App ,Program 中 WebHost 改为 Host ,Startup 中 app.UseMvc() 改为 app.UseRouting() 与 app.UseEndpoints() 阅读全文

posted @ 2019-04-28 19:38 dudu 阅读(2227) 评论(3) 推荐(8) 编辑

上一页 1 2 3 4 5 6 ··· 83 下一页

My Links

Blog Stats