共 82 页: 上一页 1 2 3 4 5 6 下一页 末页
摘要:最近同事对 .net core memcached 缓存客户端 EnyimMemcachedCore 进行了高并发下的压力测试,发现在 linux 上高并发下使用 async 异步方法读取缓存数据会出现大量失败的情况,比如在一次测试中,100万次读取缓存,只有12次成功,999988次失败,好恐怖 阅读全文
posted @ 2019-05-05 17:40 dudu 阅读 (437) 评论 (2) 编辑
摘要:最近遇到 NetworkStream.ReadAsync 在 Linux 上高并发读取数据的问题,由此激发了阅读 corefx 中 System.Net.Sockets 实现源码(基于 corefx 2.2)的兴趣。这篇随笔是阅读 NetworkStream.ReadAsync 相关源码的简单笔记,基于在 Linux 上运行的场景。 阅读全文
posted @ 2019-05-04 15:29 dudu 阅读 (171) 评论 (2) 编辑
摘要:昨天回答了博问中的一个问题 —— “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 阅读 (2051) 评论 (5) 编辑
摘要:最近遇到一个非常奇特的问题,在一个 ASP.NET Core 项目中从 SQL Server 2008 R2 中查询获取 100 条记录竟然耗时 10 多秒,如果是查询本身慢,那到不是什么奇特的问题。说它非常奇特是因为耗时主要发生在 SqlDataReader 读取数据时,开始怀疑是 EF Core 的问题,通过在 EF Core 源码中打点,定位到耗时发生在 _dataReader.ReadAsync 处 阅读全文
posted @ 2019-04-29 23:43 dudu 阅读 (510) 评论 (2) 编辑
摘要:将 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 阅读 (1347) 评论 (3) 编辑
摘要:在昨天的技术周会上发现 EnyimMemcached 中建立 Socket 连接的代码有问题,今天坐车的时候在手机上阅读 .net core 2.2 的 SqlClient 中同步建立 Socket 连接的代码 SNITcpHandle.cs#L180 学习了一下。 阅读全文
posted @ 2019-04-27 14:44 dudu 阅读 (182) 评论 (4) 编辑
摘要:最近遇到一个非常诡异的问题,在一个 ASP.NET Core 2.2 项目中,从 SQL Server 数据库查询 100 条数据记录,会出现 16-22s 左右的延迟。延迟出现在执行 SqlDataReader 的 ReadAsync 方法时,在一行一行读取数据时,读取某些行时会出现 2-3s 的延迟。 阅读全文
posted @ 2019-04-22 12:05 dudu 阅读 (165) 评论 (2) 编辑
摘要:最近在排查一个奇怪的 EF Core 查询速度慢的问题,需要在 corefx 2.2.3 的 System.Data.SqlClient 源码中打点。github 上签出 corefx 的源代码,运行 build.cmd 命令,然后用 VS2017 打开 System.Data.SqlClient.sln ,添加 Console.WriteLine 打点代码,用 VS 进行 build 。 阅读全文
posted @ 2019-04-13 17:27 dudu 阅读 (223) 评论 (0) 编辑
摘要:最近遇到了一个 EF Core 的恐怖问题,在添加数据时竟然会自动删除数据库中已存在的数据,经过追查发现是一个多余的实体关系配置引起的。罪魁祸首就是上面的 `WithOne()` 。今天写了个非常简单的控制台程序重现了这个问题。 阅读全文
posted @ 2019-03-28 16:39 dudu 阅读 (231) 评论 (0) 编辑
摘要:在前两天遇到 .NET Core 中 EF Core 的异步与同步查询的百倍性能之差之后,这两天又遇到了 `AutoMapper ProjectTo` 与 `Mapster ProjectToType` 的百倍性能之差。问题是在昨天发现的,使用 `AutoMapper ProjectTo 阅读全文
posted @ 2019-02-28 13:45 dudu 阅读 (1263) 评论 (7) 编辑
摘要:这两天遇到一个奇怪的问题,通过 EF/EF Core 查询数据库速度奇慢,先是在传统的 ASP.NET 项目中遇到(用的是EF6.0),后来将该项目迁移至 ASP.NET Core 也是同样的问题(用的是EF Core 2.2.2)。 问题触发的条件是所查询的字段中存储了很大的字符串(有400多万个 阅读全文
posted @ 2019-02-23 16:29 dudu 阅读 (1969) 评论 (8) 编辑
摘要:DbContextPool 是 ASP.NET Core 2.1 引入的新特性,可以节省创建 DbContext 实例的开销,但没有想到其中藏着一个小坑。最近有一个 ASP.NET Core 项目持续运行一段时间后日志中就会出现数据库连接池达到最大连接数限制的错误 阅读全文
posted @ 2019-02-18 22:05 dudu 阅读 (4281) 评论 (8) 编辑
摘要:这是今天在实际项目中遇到的一个问题,EF Core 2.2 生成了下面的 SQL 语句,INNER JOIN 部分丑陋的 SQL 语句让人无法忍受。使用的是标准的一对多(one-to-mant)映射关系,在其他项目都能生成赏心悦目的 SQL 语句,唯独今天这个项目中不行。 阅读全文
posted @ 2018-12-18 17:44 dudu 阅读 (488) 评论 (1) 编辑
摘要:在 .NET Framework 与 .NET Core 中 HttpClient 有个臭名昭著的问题,HttpClient 实现了 IDispose 接口,但当你 Dispose 它时,它不会立即关闭所使用的 tcp 连接,而是将 tcp 连接置为 TIME_WAIT 状态,240秒(4分钟)后才真正关闭连接。对于高并发的场景,比如每秒 1000 个请求,每个请求都用到 HttpClient 阅读全文
posted @ 2018-10-31 16:30 dudu 阅读 (2765) 评论 (15) 编辑
摘要:在我们 2015 年开始的从 .NET Framework 向 .NET Core 迁移的工程中,遇到的最大的坑就是标题中所说的——同步方法中调用异步方法发生”死锁”。虽然在 .NET Framework 时代就知道不能在同步方法中调用异步方法,但我们却明知路有坑,偏向此路行。不是我们自讨苦吃,而是被迫无奈 阅读全文
posted @ 2018-10-29 10:54 dudu 阅读 (5553) 评论 (52) 编辑
摘要:最近在阅读 .NET Threadpool starvation, and how queuing makes it worse 这篇博文时发现文中代码中的一种 Task 用法之前从未见过,在网上看了一些资料后也是云里雾里不知其解,很是困扰。今天在程序员节的大好日子里终于想通了,于是写下这篇随笔分享给大家 阅读全文
posted @ 2018-10-24 22:19 dudu 阅读 (7596) 评论 (43) 编辑
摘要:接手一台跑在 Tomcat 上的 Java Web 应用的服务器,通过镜像的方式更换服务器后站点无法访问,发现是因为 Tomcat 不能在服务器启动后自动启动,于是基于 init.d 将 Tomcat 配置为以服务方式自动运行。 阅读全文
posted @ 2018-10-21 17:11 dudu 阅读 (682) 评论 (0) 编辑
摘要:SQLite 内存数据库(in-memory database)的连接字符串是 Data Source=:memory: ,它的特点是数据库连接一关闭,数据库就会被删除。而使用 services.AddDbContext 通过连接字符串配置 EF Core 时,EF Core 会在每次查询或 SaveChanges 后立即关闭数据库连接。在这样的情况下,集成测试中就无法在向 SQLite 内存数据库写入数据库后进行查询测试。 阅读全文
posted @ 2018-10-10 14:02 dudu 阅读 (465) 评论 (0) 编辑
摘要:.NET Core 2.0 引入了 IHostedService ,基于它可以很方便地执行后台任务,.NET Core 2.1 则锦上添花地提供了 IHostedService 的默认实现基类 BackgroundService ,在这篇随笔中分别用 Web 与 Console 程序体验一下。 阅读全文
posted @ 2018-09-14 18:08 dudu 阅读 (1099) 评论 (0) 编辑
摘要:在 ASP.NET Core 中如果在 DataProtection 中使用了 PersistKeysToFileSystem 或 PersistKeysToFileSystem,会在日志中出现告警,这是由于 DataProtection 所用到的密钥本身没有被加密存储,要消除这个告警,需要一个专门用来加密“密钥”的密钥,首先用 openssl 命令创建密钥,得到 cnblogs.pfx 文件 阅读全文
posted @ 2018-09-05 16:05 dudu 阅读 (1162) 评论 (1) 编辑
共 82 页: 上一页 1 2 3 4 5 6 下一页 末页