10 2018 档案

摘要:在 .NET Framework 与 .NET Core 中 HttpClient 有个臭名昭著的问题,HttpClient 实现了 IDispose 接口,但当你 Dispose 它时,它不会立即关闭所使用的 tcp 连接,而是将 tcp 连接置为 TIME_WAIT 状态,240秒(4分钟)后才真正关闭连接。对于高并发的场景,比如每秒 1000 个请求,每个请求都用到 HttpClient 阅读全文
posted @ 2018-10-31 16:30 dudu 阅读(5631) 评论(16) 推荐(18) 编辑
摘要:在我们 2015 年开始的从 .NET Framework 向 .NET Core 迁移的工程中,遇到的最大的坑就是标题中所说的——同步方法中调用异步方法发生”死锁”。虽然在 .NET Framework 时代就知道不能在同步方法中调用异步方法,但我们却明知路有坑,偏向此路行。不是我们自讨苦吃,而是被迫无奈 阅读全文
posted @ 2018-10-29 10:54 dudu 阅读(13948) 评论(57) 推荐(34) 编辑
摘要:最近在阅读 .NET Threadpool starvation, and how queuing makes it worse 这篇博文时发现文中代码中的一种 Task 用法之前从未见过,在网上看了一些资料后也是云里雾里不知其解,很是困扰。今天在程序员节的大好日子里终于想通了,于是写下这篇随笔分享给大家 阅读全文
posted @ 2018-10-24 22:19 dudu 阅读(22260) 评论(44) 推荐(67) 编辑
摘要:接手一台跑在 Tomcat 上的 Java Web 应用的服务器,通过镜像的方式更换服务器后站点无法访问,发现是因为 Tomcat 不能在服务器启动后自动启动,于是基于 init.d 将 Tomcat 配置为以服务方式自动运行。 阅读全文
posted @ 2018-10-21 17:11 dudu 阅读(2481) 评论(0) 推荐(0) 编辑
摘要:阿里云 RAM 控制台没有提供管理磁盘快照的系统策略,需要自己添加自定义授权策略。操作步骤:* 进入 RAM 控制台 -> 策略管理,点击“新建授权策略”;* 选中“空白模板”;* 授权策略名称中输入“AlyunSnapshotFullAccess”;* 备注中输入“管理磁盘快照的权限”;* 策略内容中输入下面的配置 阅读全文
posted @ 2018-10-19 13:10 dudu 阅读(1070) 评论(0) 推荐(0) 编辑
摘要:SQLite 内存数据库(in-memory database)的连接字符串是 Data Source=:memory: ,它的特点是数据库连接一关闭,数据库就会被删除。而使用 services.AddDbContext 通过连接字符串配置 EF Core 时,EF Core 会在每次查询或 SaveChanges 后立即关闭数据库连接。在这样的情况下,集成测试中就无法在向 SQLite 内存数据库写入数据库后进行查询测试。 阅读全文
posted @ 2018-10-10 14:02 dudu 阅读(1320) 评论(0) 推荐(3) 编辑