摘要: 被这个坑坑得刻骨铭心!死锁问题的确是由于在构造函数中同步调用异步方法引起的。目前 System.Net.NameResolution 只提供了异步的 API 进行主机名的解析,上面的 GetHostEntry() 是同步方法,但只支持 netstandard 2.0阅读全文
posted @ 2016-12-04 23:28 dudu 阅读(37) 评论(0) 编辑
摘要: 一个 asp.net core 站点,之前运行在Linux 服务器上,运行一段时间后有时站点会挂掉,在日志中记录很多“EMFILE too many open files”的错误: 后来将这个 asp.net 站点部署到 Windows 服务器的 IIS 上。运行一段时间后,发现其中一台服务器出现5阅读全文
posted @ 2016-12-02 21:11 dudu 阅读(76) 评论(0) 编辑
摘要: 今天第一次将整个 asp.net core 站点发布到 Windows 的 IIS 上,以前都是发布到 Linux 服务器上。开始使用 dotnet publish -c release 命令发布,浏览器访问站点时出现下面的错误:HTTP Error 502.5 - Process Failure阅读全文
posted @ 2016-11-28 18:30 dudu 阅读(127) 评论(1) 编辑
摘要: 从 .NET Core SDK 1.0 Preview 3 build 004056 开始,.NET Core 弃用 project.json,回归 .csproj,主要原因是为了兼容 MSBuild ,详见 Announcing .NET Core Tools MSBuild “alpha” 。阅读全文
posted @ 2016-11-18 12:16 dudu 阅读(321) 评论(4) 编辑
摘要: 这是从 ASP.NET Core 1.1 官方发布博文中学到的一招,可以在 dontet publish 时将 Razor 视图编译为 .dll 文件。MVC Razor 视图被编译成了一个 AboutUs.PrecompiledViews.dll 文件,运行站点时只需要这个 dll 文件,不需要 .cshtml 视图文件了。阅读全文
posted @ 2016-11-17 17:17 dudu 阅读(153) 评论(3) 编辑
摘要: 1)下载安装包含 .NET Core 1.1 Preview 1 的 SDK;2)下载最新 VS 2015 NuGet 插件;3)创建一个扩展名位 .sln 的空白文件,将以下内容复制粘贴到这个 .sln 文件中;在各个VS项目文件夹(.csproj文件所在的文件夹)中创建扩展名位 .xproj 的空文件,将下面的内容复制/粘贴至其中,并将 RootNamespace 的值设置为当前项目的命名空间。阅读全文
posted @ 2016-11-07 12:07 dudu 阅读(300) 评论(3) 编辑
摘要: 这是在对一个博客模板进行移动端适配时遇到的一个场景。要解决的问题是如何在不修改任何html代码的情况下,仅仅通过css实现下面的效果:1)改变它们的显示顺序;2)让它们以行的方式显示。阅读全文
posted @ 2016-11-06 16:20 dudu 阅读(4023) 评论(15) 编辑
摘要: 这篇博文分享的是”C#中使用OpenSSL的公钥加密/私钥解密“一文中的解决方法在 .net core 中的改进。之前的博文针对的是 .NET Framework ,加解密用的是 RSACryptoServiceProvider 。虽然在 corefx(.NET Core Framework) 中也有 RSACryptoServiceProvider ,但它目前只支持 Windows ,不能跨平台。阅读全文
posted @ 2016-11-03 16:59 dudu 阅读(735) 评论(5) 编辑
摘要: 在 ASP.NET Core 中,默认情况下当发生500或404错误时,只返回http状态码,不返回任何内容,页面一片空白。 如果在 Startup.cs 的 Configure() 中加上 app.UseStatusCodePages(); ,500错误时依然是一片空白(不知为何对500错误不起作阅读全文
posted @ 2016-10-27 17:24 dudu 阅读(144) 评论(0) 编辑
摘要: ASP.NET Core 1.1 Preview 1 中新增了 URL Rewriting middleware ,终于可以进行 URL 重写了,实际使用体验一下。首先要将 ASP.NET Core 项目升级至 .NET Core 1.1 Preview 1,然后在 project.json 添加 "Microsoft.AspNetCore.Rewrite" 的引用并运行 donet restore 安装对应的nuget包。阅读全文
posted @ 2016-10-26 23:04 dudu 阅读(167) 评论(3) 编辑
摘要: 在ASP.NET中,使用负载均衡时,可以通过ServerVariables获取客户端的IP地址。但在ASP.NET Core中没有ServerVariables的对应实现,需要换一种方式,可以在HttpContext.Request.Headers中获取,需要注意的是key与ServerVariables方式不一样。阅读全文
posted @ 2016-10-18 11:30 dudu 阅读(239) 评论(6) 编辑
摘要: 在 EnyimMemcachedCore中实现 Microsoft.Extensions.Caching.Distributed.IDistributedCache 接口时,遇到了一个过期时间处理的问题。在 IDistributedCache 中用到了 DistributedCacheEntryOptions ,其中有一个属性 AbsoluteExpiration 的类型是 DateTimeOffset ,而 EnyimMemcachedCore 计算过期时间用的是 DateTime阅读全文
posted @ 2016-09-27 12:00 dudu 阅读(214) 评论(0) 编辑
摘要: ASP.NET Core 内置了对 CORS 的支持,使用很简单,只需先在 Startup 的 ConfigureServices() 中添加 CORS 策略。但是,当看到上面一堆网址时,当想到每增加一个二级域名都需要修改上面的代码时,一种不舒服的感觉油然而生,一种想偷懒的冲动涌上心头。阅读全文
posted @ 2016-09-22 15:51 dudu 阅读(992) 评论(6) 编辑
摘要: 在我们将站点从 ASP.NET + Windows 迁移至 ASP.NET Core + Linux 的过程中,目前遇到的最大障碍就是 —— 没有可用的支持 .NET Core 的 memcached 客户端。我们一直用的是 EnyimMemcached ,在没有其它选择的情况下,我们自己尝试着将 EnyimMemcached 迁移至 .NET Core。。。基于 .NET Core 修改好了代码,在开发环境下测试通过,在 Linux 服务器上自己访问很正常(没有并发访问量)阅读全文
posted @ 2016-09-21 15:42 dudu 阅读(870) 评论(21) 编辑
摘要: 有园友在博问中提了这样一个问题 —— .NET Core 中文等非英文文字html编码输出问题,到我们的 ASP.NET Core 项目中一看,也是同样的问题。解决这个问题需要从ASP.NET Core MVC中的HtmlHelper下手(上面代码中Html的类型就是HtmlHelper)阅读全文
posted @ 2016-09-17 22:22 dudu 阅读(2121) 评论(12) 编辑
摘要: 前几天发现 AutoMapper 3.3 的一个性能问题(详见:遭遇AutoMapper性能问题:映射200条数据比100条慢了近千倍),于是将 AutoMapper 升级至最新的 5.1.1 看是否也存在这个性能问题。代码运行时在执行 Mapper.Map() 时出现下面的错误:Missing type map configuration or unsupported mapping阅读全文
posted @ 2016-09-15 22:37 dudu 阅读(313) 评论(3) 编辑
摘要: HSTS(HTTP Strict Transport Security) 简单来说就是由浏览器进行http向https的重定向。如果不使用HSTS,当用户在浏览器中输入网址时没有加https,浏览器会默认使用http访问,所以对于https站点,通常会在服务端进行http至https的重定向。如果用阅读全文
posted @ 2016-09-15 13:45 dudu 阅读(407) 评论(1) 编辑
摘要: 今天遇到了AutoMapper的一个性能问题,使用的是AutoMapper的Project特性,AutoMapper版本是3.3.0。当获取包含200条数据的列表时,竟然超过5秒。而改为200条数据,只需不到10毫秒。相差近千倍,真是不可思议。阅读全文
posted @ 2016-09-11 22:37 dudu 阅读(340) 评论(2) 编辑
摘要: 今天重装了一台Linux服务器的Ubuntu 14.04系统,需要重新安装.NET Core 1.0。按照官网上的文档用apt-get命令进行安装。安装后运行dotnet -v命令却提示找不到命令。安装后运行dotnet -v命令却提示找不到命令:dotnet: command not found。阅读全文
posted @ 2016-08-01 21:19 dudu 阅读(448) 评论(8) 编辑
摘要: 阿里云推荐的Redis服务.NET客户端是ServiceStack.Redis,但ServiceStack.Redis不支持异步,不支持.NET Core,于是尝试使用StackExchange.Redis。Microsoft.Extensions.Caching.Redis用的也是StackExc阅读全文
posted @ 2016-08-01 17:48 dudu 阅读(584) 评论(11) 编辑