摘要: 这是这两天ASP.NET Core迁移中遇到的一个问题。2个ASP.NET Core站点(对应于2个不同的ASP.NET Core Web应用程序),2个站点都可以登录,但在其中任1个站点登录后,在当前站点处于登录状态,访问另外1个站点却处于未登录状态。阅读全文
posted @ 2017-03-03 12:58 dudu 阅读(149) 评论(1) 编辑
摘要: 今天将一个迁移至 ASP.NET Core 的项目放到一台 Linux 服务器上试运行。站点启动后,浏览器打开一个页面一直处于等待状态。接着奇怪的事情发生了,整个 Linux 服务器响应缓慢,ssh命令行输入都一顿一顿的,过了一会,直接停止响应,down机了,必须强制重启服务器才行。阅读全文
posted @ 2017-02-15 17:33 dudu 阅读(259) 评论(0) 编辑
摘要: ASP.NET Core Data Protection 不仅提供了非对称加密能力,而且提供了灵活的秘钥存储方式以及一致的加解密接口(Protect与Unprotect)。Session中用到了它,Cookie验证中用到了它,OpenIdConnect中也用到了它。。。当然你也可以在应用开发中使用它,比如这篇博文中就是用它生成激活帐户的验证token阅读全文
posted @ 2017-02-13 20:52 dudu 阅读(140) 评论(0) 编辑
摘要: 在你将现有的用户登录站点从ASP.NET迁移至ASP.NET Core时,你将面临这样一个问题——如何让ASP.NET与ASP.NET Core用户验证Cookie并存,让ASP.NET应用与ASP.NET Core应用分别使用各自的Cookie?因为ASP.NET用的是FormsAuthentication,ASP.NET Core用的是claims-based authentication,而且它们的加密算法不一样阅读全文
posted @ 2017-02-05 18:01 dudu 阅读(280) 评论(1) 编辑
摘要: 这篇英文博文是 Andrew Lock 写的 Introduction to Authentication with ASP.NET Core 。ASP.NET Core 的验证模型是 claims-based authentication 。Claim 是对被验证主体特征的一种表述。一组claims构成了一个identity,具有这些claims的identity就是 ClaimsIdentity阅读全文
posted @ 2017-02-05 12:14 dudu 阅读(206) 评论(0) 编辑
摘要: 自从微软做了一个艰难的决定——.NET Core彻底放弃project.json全面改回.csproj——至今,虽然赞美之声不断,但我依然不喜欢也难以接受这样的改变。 难以接受主要有两方面的原因:1)由繁入简易,由简入繁难;2)xml与json配置文件的混杂带来不一致的编辑体验阅读全文
posted @ 2017-02-03 21:19 dudu 阅读(453) 评论(5) 编辑
摘要: 这是今天坐公交时继续阅读这篇采访报道的收获。新一代.NET平台的三大框架是:.NET Core, .NET Framework, Mono,它们的定位分别是:.NET Core 定位于跨平台服务端应用开发;.NET Framework 定位于 Windows 桌面应用开发;Mono 定位于移动应用开发阅读全文
posted @ 2017-02-02 14:49 dudu 阅读(416) 评论(2) 编辑
摘要: 今天坐公交时用手机打开 .NET Blog 阅读这周的 The week in .NET ,在看 Virtual Panel: What's Next for .NET? 这篇采访报道时,被其中对 Richard Lander (Principal Program Manager Lead on the .NET Team at Microsoft) 的一段采访所吸引阅读全文
posted @ 2017-02-01 18:51 dudu 阅读(375) 评论(6) 编辑
摘要: 今天用 SQL Server Profiler 查看 Entity Framework Core 生成的 SQL 语句时,突然发现一个细节改进,并且被它震撼了一下。震撼之处就是这个u(表的别名),它可不是 EF Core 随意起的名字,而是来自 LINQ 代码中的命名。阅读全文
posted @ 2017-01-19 23:08 dudu 阅读(397) 评论(3) 编辑
摘要: 在 Entity Framework (非EF Core)中,当通过 EF 使用 LINQ 查询获取到一个实体时,这个实体的状态是默认被跟踪的。所以,当你修改某些实体属性的值之后调用 SaveChanges() ,EF 就会生成只针对这些被修改属性的 UPDATE SQL 语句。阅读全文
posted @ 2017-01-17 16:32 dudu 阅读(111) 评论(0) 编辑
摘要: .NET Core 迁移工作如火如荼,今天在使用 Entity Frameowork Core(又名EF Core)时写了下面这样的 LINQ 查询表达式: 结果在 SQL Server Profiler 中发现竟然进行了全表查询。 之后将 new Guid(userId) 从表达式中移出,保存于一阅读全文
posted @ 2017-01-16 22:06 dudu 阅读(202) 评论(4) 编辑
摘要: 之前在将 Memcached 客户端 EnyimMemcached 迁移 .NET Core 时被这个“坑”坑的刻骨铭心,当时以为只是在构造函数中调用异步方法才会出线死锁(deaklock)问题。最近在使用 redis 客户端 StackExchange.Redis 时也遇到了这个问题。阅读全文
posted @ 2017-01-05 14:24 dudu 阅读(515) 评论(10) 编辑
摘要: 这是在昨天的 .NET Core 迁移中遇到的问题,之前在 .NET Framework 中是这样合并 Expression阅读全文
posted @ 2016-12-30 12:30 dudu 阅读(296) 评论(3) 编辑
摘要: 通常我们在 Prgram.cs 中使用硬编码的方式配置 ASP.NET Core 站点的 Hosting 环境,最常用的就是 .UseUrls() 。 但这种硬编码绑定端口的方式会给在同一台 Linux 服务器上部署多个站点造成麻烦,因为不同站点需要绑定不同的端口。除非你在开发时就已经约定好各个项目阅读全文
posted @ 2016-12-29 15:18 dudu 阅读(175) 评论(0) 编辑
摘要: 今天在将一个项目迁移至ASP.NET Core的过程中遭遇一个循环依赖问题,错误信息如下: 一开始以为是项目之间的引用关系引起的,在project.json中找来找去,一无所获。 后来从构造函数下手,才发现问题所在。 实现ITagService的类TagService的构造函数是这么定义的: 这是很阅读全文
posted @ 2016-12-28 18:18 dudu 阅读(94) 评论(1) 编辑
摘要: 之前的博文”ASP.NET Core中显示自定义错误页面“中的方法是在项目中硬编码实现的,当有多个项目时,就会造成不同项目之间的重复代码,不可取。在这篇博文中改用middleware实现,并且放在独立的项目中发布成NuGet包,项目中使用时只需安装NuGet包,然后在Startup的Configure()方法中添加如下的一行代码。阅读全文
posted @ 2016-12-27 18:25 dudu 阅读(188) 评论(0) 编辑
摘要: .NET 的开源,有了更多的DIY乐趣。这篇博文记录一下在新安装的 Linux Ubuntu 14.04 上通过自己动手编译 dotnet cli 的源代码生成 .net core sdk 的 deb 安装包。阅读全文
posted @ 2016-12-07 23:06 dudu 阅读(194) 评论(1) 编辑
摘要: 被这个坑坑得刻骨铭心!死锁问题的确是由于在构造函数中同步调用异步方法引起的。目前 System.Net.NameResolution 只提供了异步的 API 进行主机名的解析,上面的 GetHostEntry() 是同步方法,但只支持 netstandard 2.0阅读全文
posted @ 2016-12-04 23:28 dudu 阅读(260) 评论(0) 编辑
摘要: 一个 asp.net core 站点,之前运行在Linux 服务器上,运行一段时间后有时站点会挂掉,在日志中记录很多“EMFILE too many open files”的错误: 后来将这个 asp.net 站点部署到 Windows 服务器的 IIS 上。运行一段时间后,发现其中一台服务器出现5阅读全文
posted @ 2016-12-02 21:11 dudu 阅读(384) 评论(0) 编辑
摘要: 今天第一次将整个 asp.net core 站点发布到 Windows 的 IIS 上,以前都是发布到 Linux 服务器上。开始使用 dotnet publish -c release 命令发布,浏览器访问站点时出现下面的错误:HTTP Error 502.5 - Process Failure阅读全文
posted @ 2016-11-28 18:30 dudu 阅读(819) 评论(9) 编辑