.NET

  • .Net Core 使用NLog记录日志到文件和数据库的操作方法

    NLog 记录日志是微软官方推荐使用。 接下来,通过配置日志记录到文件和Sql Server数据库。 第一步:首先添加包NLog.Config (可通过微软添加包命令Install-Package 包名进行添加,也可以通过管理NuGet程序包进行添加),添加成功后会生成NLog.config配置文件。并对该配置文件进行配置。详细配置可参考Git上 NLog说明。 一下是我个人配置。 <?xml version=”1.0″ encoding=”utf-8″ ?> <nlog xmlns=”http://www.nlog-project.org/schemas/NLog.xsd”…

    2021年8月16日
    0 39 0
  • Asp.net中UpdatePanel的用法详解

    Asp.net UpdatePanel 允许用户构建一个丰富的,以客户端为中心的应用程序,引用UpdatePanel控件,能够实现页面的部分刷新,一个包含scriptManage和 UpdatePanel控件的页面自动具有页面部分刷新的功能,不需要写任何的客户端JavaScript代码。一个web页面只能包含一个 ScriptManage控件,但可以包含一个或多个UpdatePanel控件。 使用UpdatePanel控件实现页面的局部更新,需要包含一个ScriptManage控件,并且必须将ScriptManage控件的 EnablePartialRendering属性设置为true,不过你…

    .NET 2021年8月16日
    0 35 0
  • .net core 使用阿里云分布式日志的配置方法

    前言 好久没有出来夸白了,今天教大家简单的使用阿里云分布式日志,来存储日志,没有阿里云账号的,可以免费注册一个 开通阿里云分布式日志(有一定的免费额度,个人测试学习完全没问题的,香) 阿里云日志地址:https://sls.console.aliyun.com/lognext/profile 先开通阿里云日志,这个比较简单授权就可以了 选择接入数据,我们这里选 .NET 选择项目名称,没有项目的可以去创建一个,项目名称后面会用到,如果你有购买阿里云ECS,项目区域最好选择跟ECS同一个区域(每个区域的地址不一样,同一个区域可以选择内网通讯,速度更快),如果没有,就随便选个区域,我这里选择的是杭…

    2021年8月16日
    0 37 0
  • .NET 开源项目Polly的简单介绍

    目录 Polly 介绍 故障处理策略示例 Polly 的七种策略 重试(Retry) 断路(Circuit-breaker) 超时(Timeout) 隔离(Bulkhead Isolation) 回退(Fallback) 缓存(Cache) 策略包(Policy Wrap) 总结 Polly 介绍 官方对 Polly 的介绍是这样的: Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit B…

    2021年8月16日
    0 39 0
  • .NET 开源项目Polly的简单介绍

    目录 Polly 介绍 故障处理策略示例 Polly 的七种策略 重试(Retry) 断路(Circuit-breaker) 超时(Timeout) 隔离(Bulkhead Isolation) 回退(Fallback) 缓存(Cache) 策略包(Policy Wrap) 总结 Polly 介绍 官方对 Polly 的介绍是这样的: Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit B…

    2021年8月16日
    0 34 0
  • .net core日志系统相关总结

    目录 前言 正文 前言 本节开始整理日志相关的东西。先整理一下日志的基本原理。 正文 首先介绍一下包: 1.Microsoft.Extengsion.Logging.Abstrations 这个是接口包。 2.Microsoft.Extengsion.Logging 这个是实现包 3.Microsoft.Extengsion.Logging.Console 这个是扩展包 代码如下: static void Main(string[] args) { IConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); …

    2021年8月16日
    0 34 0
  • asp.net core配合vue实现后端验证码逻辑

    目录 概述 部分原理 源码 概述 网上的前端验证码逻辑总感觉不安全,验证码建议还是使用后端配合验证。 如果产品确定可以上网的话,就可以使用腾讯,百度等第三方验证,对接方便。但是产品可能内网部署,就必须自己写了。 本文章就是基于这一点来实现的。 前端验证码显示一个图片,后端生成图片。 部分原理 1.前端调用生端获取图片时,传入一个roomID,后端生成一个4位验征码,放入redis中。然后生成一个图片返回。 2.前端显示图片,登录时将roomID和填写的验证码,一并提交,登录接口根据roomId从redis中取出验证码判断是否正确。 这样就相当于后端验证了。 大家觉得有问题什么,可以进行评论。谢…

    .NET 2021年8月16日
    0 40 0
  • 在运行时编辑代码的 .NET 热重载的操作方法

    今天,我们很高兴向你介绍 Visual Studio 2019 中 16.11(预览版1)中的 .NET 热重载(通过 .NET 6(预览版4)中的 dotnet watch 命令行工具)。在这篇文章的其余部分,我们会介绍什么是 .NET 热重载,您如何开始使用这个特性,我们对未来计划改进的设想,以及目前支持哪种编辑和语言的明确性。   今天,我们很高兴向你介绍 Visual Studio 2019 中 16.11(预览版1)中的 .NET 热重载(通过 .NET 6(预览版4)中的 dotnet watch 命令行工具)。在这篇文章的其余部分,我们会介绍什么是 .NET 热重载,您如何开始使…

    2021年8月16日
    0 37 0
  • .net core 基于Hangfire+Mysql持久化实现定时任务配置方法

    1.negut引入hangfire相关包 Hangfire.AspNetCore,Hangfire.Core,Hangfire.Dashboard.BasicAuthorization,Hangfire.MySqlStorage 2.Appsetting 配置hangfire资源 “HangFire”: { “Connection”: “Server=127.0.0.1;uid=root;pwd=wakamysql666;database=Hangfire_DB;AllowLoadLocalInfile=true;Allow User Variables=True;”, “pathMatch”…

    2021年8月16日
    0 42 0
  • 关于.net环境下跨进程、高频率读写数据的问题

    目录 一、需求背景 二、没错,第一节写的太多了 三、开始写代码了 四、真的要贴代码了 五、差点忘记做成DLL了 六、因为跨线程、进程,所以要考虑加入互斥量哦 一、需求背景 1、最近项目要求高频次地读写数据,数据量也不是很大,多表总共加起来在百万条上下。 单表最大的也在25万左右,历史数据表因为不涉及所以不用考虑, 难点在于这个规模的热点数据,变化非常频繁。 数据来源于一些检测设备的采集数据,一些大表,有可能在极短时间内(如几秒钟)可能大部分都会变化, 而且主程序也有一些后台服务需要不断轮询、读写某种类型的设备,所以要求信息交互时间尽可能短。 2、之前的解决方案是把所有热点数据,统一加载到共享内…

    2021年8月15日
    0 40 0
  • 关于.net环境下跨进程、高频率读写数据的问题

    目录 一、需求背景 二、没错,第一节写的太多了 三、开始写代码了 四、真的要贴代码了 五、差点忘记做成DLL了 六、因为跨线程、进程,所以要考虑加入互斥量哦 一、需求背景 1、最近项目要求高频次地读写数据,数据量也不是很大,多表总共加起来在百万条上下。 单表最大的也在25万左右,历史数据表因为不涉及所以不用考虑, 难点在于这个规模的热点数据,变化非常频繁。 数据来源于一些检测设备的采集数据,一些大表,有可能在极短时间内(如几秒钟)可能大部分都会变化, 而且主程序也有一些后台服务需要不断轮询、读写某种类型的设备,所以要求信息交互时间尽可能短。 2、之前的解决方案是把所有热点数据,统一加载到共享内…

    2021年8月15日
    0 39 0
  • .Net基于Thread实现自旋锁的三种方式

    基于Thread.SpinWait实现自旋锁 实现原理:基于Test–And–Set原子操作实现 使用一个数据表示当前锁是否已经被获取 0表示未被索取,1表示已经获取 获取锁时会将_lock的值设置为1 然后检查修改前的值是否等于0, 优点: 不使用Thread.SpinWait方法,重试的方法体会为空,CPU会使用它的最大性能来不断的进行赋值和比较指令,会浪费很大的性能,Thread.SpinWait提示CPU当前正在自旋锁的循环中,可以休息若干个时间周期 使用自旋锁需要注意的问题,自旋锁保护的代码应该在非常短的时间内执行完成,如果时间过长,其他线程不断重试导致影响其…

    2021年8月15日
    0 34 0
  • .Net Core中使用Autofac替换自带的DI容器的示例

    目录 项目创建 方案演示 .Net Core自带DI 不同的特性 批量注入 属性注入 存储并提取容器实例 为什么叫浅谈呢?就是字面上的意思,讲得比较浅,又不是不能用(这样是不对的)!!! Aufofac大家都不陌生了,说是.Net生态下最优秀的IOC框架那是一点都过分。用的人多了,使用教程也十分丰富,官网教程也比较详细(如果英文功底还不错的话)。 那我为什么还要写这样一篇博客呢,一是用作学习笔记,二就是闲的。 废话不多说,开始正文 项目创建 云创建一个.Net Core Api项目,然后再添加一个类库,大概就是下面这样的结构: 新建一个类库项目,分别添加一个接口文件与类文件: 就这样,我们的演…

    2021年8月15日
    0 34 0
  • ASP.NET Core如何实现简单的静态网站滚动更新

    目录 Intro FileProvider Construct Host Demo More 总结 Intro 最近我们老板想让我实现一个静态网站“滚动更新”的功能,其实就是希望网站部署的时候网站内容完整的切换,不能网站部署的过程中一部分是新的内容,另外一部分是老的内容。 这让我想到了微软的 Azure App Service,上家公司主要是用微软的云服务 Azure,站点是部署到 Azure App Service 上的,Azure App Service 有一个部署槽的概念,我们的应用一个版本可以对应一个部署槽,通过部署槽我们就基本可以无缝地从一个版本切换到另外一个版本。 FileProv…

    2021年8月15日
    0 34 0
  • 一文带你了解.Net基于Threading.Mutex实现互斥锁

    本文主要讲解.Net基于Threading.Mutex实现互斥锁 基础互斥锁实现 基础概念:和自旋锁一样,操作系统提供的互斥锁内部有一个数值表示锁是否已经被获取,不同的是当获取锁失败的时候,它不会反复进行重试,而且让线程进入等待状态,并把线程对象添加到锁关联的队列中,另一个线程释放锁时会检查队列中是否有线程对象,如果有则通知操作系统唤醒该线程,因为获取锁的线程对象没有进行运行,即使锁长时间不释放也不会消耗CPU资源,但让线程进入等待状态和从等待状态唤醒的时间比自旋锁重试的纳秒级时间要长 windows和linux的区别 在windows系统上互斥锁通过CreateMuteEx函数创建,获取锁时…

    .NET 2021年8月15日
    0 37 0