随笔分类 - .NET Core
摘要:项目的日志框架使用了Serilog,现在有需求要将异常日志记录一份到数据库中。 目前网上可以找到适配各个数据库的Sink。https://github.com/serilog/serilog/wiki/Provided-Sinks 但是由于项目需要适配多个不同类型的数据库,故打算自定义一个Datab
阅读全文
摘要:某天收到运维线上警报,服务器内存告警,需要处理一下。此时通过浏览器打开页面,系统可以正常访问,但是有明显卡顿。为了不影响客户使用,先重启了服务释放了内存。由于该项目平时访问量并不大,因此随着程序运行内存占用率的增长比较缓慢,直到第三天才发现从原本的10%跳到了45%。初步怀疑有内存泄漏问题需要进行线
阅读全文
摘要:Websocket、SSE(Server-Sent Events)和长轮询(Long Polling)都是用于网页和服务端通信的技术。 Websocket是一种全双工通信协议,能够实现客户端和服务端之间的实时通信。它基于TCP协议,并且允许服务器主动向客户端推送数据,同时也允许客户端向服务器发送数据
阅读全文
摘要:一个项目经常会引用到很多附加的服务,比如:一个网站需要mysql数据库存储数据、redis做数据缓存、nginx反向代理等等。如果每次部署的时候都要一个个在docker中重新安装一遍这些东西就太麻烦了。所以我们就需要一个工具负责实现对Docker容器集群的快速编排。 Docker Compose 是
阅读全文
摘要:1. 在IIS中使用配置编辑器修改配置 2. 直接修改web.config配置文件
阅读全文
摘要:代码思路 将要处理的数据放到ConcurrentQueue中,然后开启多个线程去处理数据,处理完成后,再到队列中获取下一个待处理数据。 ConcurrentQueue 表示线程安全的先进先出 (FIFO) 集合,属于 System.Collections.Concurrent 命名空间下的一个数据结
阅读全文
摘要:EF 6及以前的版本是默认支持延迟加载(Lazy Loading)的,早期的EF Core中并不支持,必须使用Include方法来支持导航属性的数据加载。 当然在 EF Core 2.1 及之后版本中已经引入了延迟加载功能,详细实现原理可以查看官网( "传送门" )。 下面记录一下,分别使用Incl
阅读全文
摘要:HttpClient和MultipartFormDataContent( "传送门" )最低适用于.NET Framework 4.5版本 发送端代码 接收端代码 注意:如果要通过参数形式接收数据,需要确保参数名称和上面发送请求中设置的名称一致,否则无法自动绑定到参数中,且需要给参数加上[FromF
阅读全文
摘要:1. 默认你已经安装了IIS,并且创建了一个.Net Core 项目 2. 发布.NET Core项目 在vs中右键点击MVC项目,点击“发布”按钮,选择“文件系统”指定发布路径,点击完成即可将项目发布到本地文件夹中。 在“发布 设置”页面可以配置一些发布相关信息,主要区分一下“框架依赖/独立”发布
阅读全文
摘要:承接上文的对Kestrel的思考 上一篇介绍了如何一下在docker中发布Asp.Net Core项目(传送门)在最后尝试从外网访问网站的时候发现请求的响应头中包含了这个信息Server:Kestrel(响应请求的服务器是Kestrel) 对于ASP.NET Core的Kestrel服务器,官网上有
阅读全文
摘要:发布ASP.NET Core项目 和普通的项目发布一样,将项目发布到目标文件夹中 构建Dockerfile文件 在目标文件根目录新建Dockerfile文件(没有后缀) 上传项目文件 1.将项目构建为镜像 将文件上传到Linux的www目录下,使用命令构建成镜像 注意 dockerfile中基于mi
阅读全文