随笔
Ma-Aici
如切如磋,如琢如磨。
展开
-
解决iis自动回收导致第一次访问慢和定时任务暂停的问题
IIS会定时回收,类似于自动重新启动网站。我们都有知道网站启动后第一次访问往往会比较慢,网站启动后没有访问,过段时间iis会回收,请求再来的时候会和网站刚刚启动的时候一样,需要等待一段时间,很不舒服,这个就是因为iis回收导致的。定时回收除了会出现上面的情况外,还会将我们托管的后台任务回收掉,导致我们的后台任务终止执行,直到进来一个请求(网站内任意地址)任务启动,那么如果请求很久没来,这个任务将无法被启动,错过任务应该执行的档口。虽然我们可以通过调整自动回收的时间,甚至设置他不自动回收,但这样始终不是最原创 2020-09-23 09:32:50 · 3004 阅读 · 1 评论 -
给.net core安排后台定时任务,并且解决iis自动回收导致任务被终止的问题
1、在 ASP.NET Core 中使用托管服务实现后台任务很多时候我们需要给程序添加一些后台任务,帮我处理一些需要定时处理的任务,比如定时发送邮件,定时做一些统计之类的工作,这时候我们可以写一个windows服务来搞定,或者在现有的webapi项目中添加定时。写windows服务来处理后台任务固然是个比较好的选择,但是这样就会增加运维成本,原本只有一个项目,现在有两个,最主要的是windows服务很容易被遗忘掉,升级或者迁移的时候增加风险,对于一些比较简单的任务,我选择直接在 ASP.NET Co原创 2020-09-16 15:02:55 · 10653 阅读 · 8 评论 -
二维码自动批量生成
前段时间公司有这样一个需求:由于疫情影响,单位食堂没有开放,过来参加招聘会的企业无法就餐,替代的解决方案是给他们提供附近一家餐饮店的抵用券。饭店给我提供若干个可以使用的编号,但是我们需要以二维码的形式发放下去,所以就有了这个课题。支持批量生成二维码的库其实还蛮多的,最终选择QRCoder来做,由于只有不到半天的时间,所以一切就都从简,对我们来说是一次性的东西。下面我简单分享一下我的思路和代码,...原创 2020-03-30 10:50:12 · 3625 阅读 · 0 评论 -
System.Data.SqlClient.SqlException (0x80131904): 'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。
问题:System.Data.SqlClient.SqlException (0x80131904): 'OFFSET' 附近有语法错误。在 FETCH 语句中选项 NEXT 的用法无效。使用ef core做分页查询的时候遇到这个问题,后来发现问题是出在数据库上面,测试的时候用的数据库是2016的,没有出现上述问题,但是发布到正式环境(sql server 2008 )后问题就出现。解决方...原创 2020-01-21 10:57:52 · 9708 阅读 · 2 评论 -
.net core 修改Razor页面样式后刷新没用?
asp.net core 3.0+ 开发mvc项目的时候,我们修改了razor页面的样式或者修改了页面的元素,任我们如何刷新页面这些更改都不会生效,必须要停掉网站,再重新开启才能看到变化,调整前端样式的时候这个简直是噩梦。为啥会这样?因为:“Razor SDK 默认启用 Razor 文件的生成时和发布时编译” ,意思就是说.cshtml的页面是生成时或者发布的时候就生成好的,所以后面的更改不会...原创 2020-01-09 09:10:36 · 4205 阅读 · 0 评论 -
The LINQ expression '****' could not be translated and will be evaluated locally.
The LINQ expression 'Contains([x].ExamId)' could not be translated and will be evaluated locally.今天看日志的时候,看到一条这样的警告,翻译过来是Linq 表达式无法翻译成sql,将在本地计算,就是因为这个Contains方法,没办法解析成sql语句,将会跳过这个条件,将数据拉到内存,然后再执行这个...原创 2019-12-08 16:09:28 · 4802 阅读 · 0 评论 -
无关技术,但是关乎技术高度的两项技能
其中第一项技能一定是英文无疑了,作为一个程序猿如果英文特别溜,读官方文档如行云流水一般,github ,stackoverflow等网站毫无障碍,那么他的程序人生一定时开了挂的存在,相比较其他人,他可以更加快速且精准的get到新的技术,更加容易找到问题的核心,同样也更加容易接受高深的技术。我很遗憾自己是一个英文菜菜,从一开始接触英文的时候开始,成绩就凉凉,以至于参加了两次高考英文的平均分才60...原创 2019-07-11 10:20:03 · 836 阅读 · 0 评论 -
编程世界的脚手架(Scaffolding)是啥意思
相信我们经常会看到脚手架这个名词,但是不知道他具体说的什么东西,今天特地去了解了一下:Scaffolding is a meta-programming method of building database-backed software applications. It is a technique supported by some model-view-controller frame...转载 2019-06-05 14:20:49 · 3537 阅读 · 0 评论 -
c#中关于list去重的问题
List在我们日常的开发中可谓是常客,我个人也非常喜欢,从数据库查询出来的数据或者excel导入的数据,我都喜欢先转换为对应的类型list,在搭配System.Linq下的拓展方法,基本可以应付绝大多数的数据操作了。今天在做导入的时候,需要对数据先进行去重处理,发现有几个容易忽略的点,发出来大家一起探讨一下。System.Linq下为IEnumerable(List是它的子类)拓展了Disti...原创 2019-04-30 10:27:16 · 6861 阅读 · 3 评论 -
开源工作流框架 workflow-core 的学习和使用
首先感谢作者能写出如此优雅的作品,作品地址:Workflow-Core由于工作需要,需要在项目中添加工作流引擎,经过产品经理的选型,决定用这个,并且将这个任务分配给我。经过几天的研究,我在这边做一点简单的介绍,给将要使用的同仁做一点参考。详细的可以参考项目的wiki文档,不过都是英文的。在我理解工作流是对某一个具体任务和任务之间业务规则的抽象,他将任务拆分为若干步骤,然后将这些步骤串起...原创 2019-03-14 16:55:01 · 17665 阅读 · 3 评论 -
邮件发送公网IP并通过openpop.dll读取邮件中的IP
一直想买一台服务器,挂挂网站数据库。周末看到自己淘汰下来的笔记本,想想不如自己折腾一台。于是开搞。。。安装系统、配置环境轻车熟路,统统搞定。网站可以发布到公网上,可以访问,远程也可以连接了,但是突然发现我路由器重启一次,公网IP 就变一次,蛋疼了。于是想弄个服务检测IP,当我的公网IP发生变化的时候通过邮件通知到我。以下是获取公网IP 的代码:private static string ...原创 2018-11-19 16:15:15 · 1364 阅读 · 2 评论 -
Cache和Buffer的区别
1、cache 是为了弥补高速设备和低速设备的鸿沟而引入的中间层,最终起到**加快访问速度**的作用。2、buffer 的主要目的进行流量整形,把突发的大数量较小规模的 I/O 整理成平稳的小数量较大规模的 I/O,以**减少响应次数**(比如从网上下电影,你不能下一点点数据就写一下硬盘,而是积攒一定量的数据以后一整块一起写,不然硬盘都要被你玩坏了)。作者:Towser链接:https://www...转载 2018-05-28 15:13:35 · 806 阅读 · 0 评论 -
aspose.excel格式
Aspose.Cells.Style style = xlBook.Styles[xlBook.Styles.Add()]; style1.Pattern = Aspose.Cells.BackgroundType.Solid;//单元格的线:实线 style1.HorizontalAlignment = Aspose.Cells.TextAlignmentType.Center;//转载 2017-07-26 15:18:51 · 738 阅读 · 0 评论