- 博客(46)
- 收藏
- 关注
原创 C# RSA加密
文章介绍了在C#项目中对接Java接口时,使用RSA加密工具类的实现方法。C#代码通过RSAHelper类实现公钥加密,支持PEM格式的公钥导入,并采用分块加密方式处理数据,确保与Java接口的兼容性。Java部分代码展示了如何使用Cipher类进行RSA加密,同样采用分块处理,并指定了OAEP填充模式和SHA-256哈希算法。两段代码均通过Base64编码输出加密结果,确保数据传输的完整性和安全性。
2025-05-16 14:59:11
416
原创 Net 9 通过程序修改AppSettings.Json 工具类
AppSettingsModifier 类用于修改 JSON 格式的配置文件(默认文件名为 appsettings.json)。它提供了两种更新方式:单键值对更新和批量更新。更新操作通过读取 JSON 文件、修改指定键值对,并将更新后的内容写回文件。为确保数据完整性,更新过程采用原子写入机制,先将更新内容写入临时文件,再替换原文件。类内部使用 JsonDocument 和 JsonSerializer 处理 JSON 数据,支持嵌套的 section 更新,并允许自定义 JSON 序列化选项(如缩进和命名策
2025-05-16 14:48:27
84
原创 .Net 9 webapi使用Docker部署到Linux
添加Docker支持,自动生成的Dockerfile文件内容,展示的是代码在服务器上等不同类型平台上运行编译的脚本,正常我们在windows电脑上,使用VS直接项目右键->发布->文件夹的形式发布,
2025-04-15 14:27:47
353
1
原创 FreeSql + .Net6 多库连接实现
3、 创建仓储类 ServiceLocator。1、安装Nuget包 AutoMapper。5、创建ServiceBase类。6、创建你自己的Service。7、创建Base实体类。
2025-02-27 16:40:12
411
原创 记一个雪花ID生成的工具类
while (timestamp <= lastTimestamp)//这里获取新的时间,可能会有错,这算法与comb一样对机器时间的要求很严格。/// 动态生产有规律的ID Snowflake算法是Twitter的工程师为实现递增而不重复的ID实现的。if (timestamp < lastTimestamp)//比如修改电脑时间导致。
2025-02-27 16:17:46
853
原创 solidworks PDM 插件的安装和更新
2、打开PDM管理界面,选择库->插件->找到需要更新的插件,双击打开,选择文件->添加文件,选择所有的文件,点击打开,最后点击确定,会弹出跟安装时一样的提示,点击确定即可。找到插件文件所在的文件夹,选择所有的dll文件,点击打开,然后会弹出提示窗口,提示客户端需要重启PDM,点击确定即可。2、打开PDM管理界面,选择库->插件->新插件。显示如下界面,表示插件已经加载到了,点击确定。1、复制最新的插件文件到目录。三、最最最重要的一步。
2024-09-18 14:23:44
2851
原创 菜鸟的进击之.net6控制台应用程序接收参数
打开程序所在目录,在文件夹空白处,按shift+鼠标右键->在此处打开Powershell窗口,然后输入start cmd 就可以直接在程序目录内打开cmd窗口啦,或者直接打开cmd窗口再定位到程序所在目录也行。Main(args);这句是必须要加的,我最开始就是忽略了这句,一直测试没成功。1、新建控制台应用程序,新建-添加项目-控制台应用。2、3、下一步,填写项目名称和代码存放的位置。3、下一步,框架选择.net 6 ,点击创建。4、然后项目就创建完成啦,
2024-08-23 13:40:19
455
原创 菜鸟爬坑记之.Net 6 WebApi项目中使用Log4Net报log4net:ERROR Xml element is - not a <log4net> element.
二是同样的config文件,带时在.net4.5环境下就能正常解析并输出,估计是跟版本升级做了优化有关,具体的原因不知,有知道的大佬还请不吝赐教。搜索了一圈没找到解决办法,然后就只能回到了问题本身,看错误信息是xml的元素不对,但是我config文件的内容是从其他大佬那复制过来的,按理说不会不对啊.......,我去看了我的配置文件,果然上面包了一层,我就尝试着把他去掉,果然问题解决了,成功输出。
2024-08-23 11:29:52
448
原创 .Net 6 WebApi项目中使用Log4Net详解
众所周知as we know, log4Net是一个很方便的日志输出工具,但是,每次使用,日志都没有顺利输出过.....各种不知名问题.......所以就记录一下,方便下次使用。具体的与原理和基础在此不做赘述,咱直接上干货,在项目中如何使用。
2024-08-23 11:16:05
616
原创 Task.Delay() 和 Thread.Sleep() 区别
4、Task.Delay() 比 Thread.Sleep() 消耗更多的资源,但是Task.Delay()可用于为方法返回Task类型;5、Task.Delay() 实质创建一个运行给定时间的任务, Thread.Sleep() 使当前线程休眠给定时间。1、Thread.Sleep 是同步延迟,Task.Delay异步延迟。2、Thread.Sleep 会阻塞线程,Task.Delay不会。3、Thread.Sleep不能取消,Task.Delay可以。
2024-04-13 16:02:31
667
原创 .Net6 记一次RabbitMq消息订阅/发布优化
数据合并,首先创建一个线程安全的全局变量集合A,消息订阅后,放到统一放到集合A中,当集合A中的数据达到设定的阈值(比如500条)时统一进行。这里不进行代码的展示,仅分享优化思路,当然过程中还有很多其他的实现小细节,由于当时没记录,现在有点忘记了,等想起来再进行补充。消息合并又分为两部分,一是发布时把多个数据包消息合并之后统一进行发布,二是发布消息使用批量发布的方式。经优化后,项目满足了2000台设备数据的实时上报,但未进行上限测试,优化效果还是非常明显的。3、通过异步多线程的方式去处理任务。
2024-01-17 10:55:19
867
原创 .Net 6 下WorkerService+RabbitMq实现消息的异步发布订阅
近期项目里有需要用到RabbitMq实现一些业务,学习整理之后在此记录一下,如有问题或者不对的地方,欢迎留言指正。
2024-01-17 10:21:21
1279
原创 C# 生成指定长度的随机字符串
生成的字符串中是否包含小写字母/// 生成的字符串中是否包含大写字母/// 生成的字符串中是否包含数字/// 生成的字符串中是否包含符号/// 随机字符串长度
2024-01-17 09:23:26
904
原创 .Net 6 Nacos日志控制台疯狂发输出+Log4Net日志过滤
3、最后,突然想到在添加日志时加过滤选项:在program.cs 中修改日志的配置,添加过滤项config.AddFilter(),上代码。1、提高nacos日志级别,然后再屏蔽相应级别的日志:在我没有找到怎么修改nacos日志级别的方法,希望路过的大佬能指点一下。虽然这个方法有些暴力,但是完美的解决了我的问题,在此记录一些,有同样困扰的码友,希望本文能提供帮助或思路。
2023-11-10 11:08:08
1234
原创 记一次 .Net+SqlSugar 查询超时的问题排查过程
emmmm事情再次变得诡异,明明sql没什么差别,除了 * 和 列出各属性,按照我之前的了解,查询时使用字段名,比 select * 的效率是要高的,不知道sqlSugar内部的执行机制到底是怎么样的,为什么会有这个问题,现在没时间深究,先记录一下,希望能给遇到同样问题的小伙伴提供参考。随后,我查询了数据库的事务日志,发现也是正常的,emmm事情陷入了僵局.....环境和版本:.Net 6 + SqlSuger 5.1.4.*
2023-10-26 15:00:29
2288
转载 C# 接收 C++ 传出的结构体嵌套数组及多维数组
可以看到Cell是8个字节,MyData是10个字节,Grid的第一个字段cells指定SizeCount=4,即4个Cell元素的数组,共有4*8=32个字节,第二个字段myDatas指定SizeCount=2,即2个MyData元素的数组,共有10*2=20个字节,Grid的字节数合计为32+20=52个字节。比如有二维数组的数据,可以先定义一个含有一维数组数据的结构体,然后再以结构体数组的形式转换二维数组的另一维。有了这样的结构数组定义后,在接收到了数据后,就可以采用在《
2023-04-24 14:16:29
989
原创 EF Core DbContext 线程安全
前言.Net Core WebApi Redis消息订阅_菜鸟Coco的博客-CSDN博客后续好不容易处理好后台任务,结果会时不时报错:A second operation started on this context before a previous asynchronous operation completed.Use 'await' to ensure that any asynchronous operations have completed before calling
2022-04-06 10:41:45
4109
原创 .Net Core WebApi Redis消息订阅
Redis 帮助类RedisHelper之前发布过帖子,指路.Net Core WebApi Redis消息订阅与发布本帖着重主要记录一下WebApi 订阅Redis消息。故事的起因 我们需要使用Redis缓存,进行数据存储于处理,起初直接更新Redis,由于需要频繁更新和多线程操作,导致redis操作时卡死,经过一番某度了解,决定使用消息的订阅-发布 进行操作,然后做为菜鸟的我就开始发愁了,然后又经过某度一番了解,故事徐徐展开......故事的发展...
2022-04-01 17:27:03
3372
原创 Redis帮助类
首先,安装StackExchange.Redis,新建RedisHelper类,代码如下:public class RedisHelper : IDisposable { //连接字符串 private string _connectionString; //实例名称 private string _instanceName; //默认数据库 public int _defaultDB; .
2022-02-07 17:27:55
989
原创 .Net Core WebApi Redis消息订阅与发布
帮助类 public class RedisHelper : IDisposable { //连接字符串 private string _connectionString; //实例名称 private string _instanceName; //默认数据库 public int _defaultDB; private ConcurrentDictionary<strin
2022-02-07 17:10:22
1745
原创 使用Redis订阅+Websocket 将消息推送给前端
前言首先说一下业务,我们的webapi需要从redis订阅消息,并把订阅到的消息推送给web前端。要求不同的用户建立不同的websocket连接,并把websocket要把消息分发给不同的用户。Redis的消息订阅与发布并不复杂,这里不再赘述。主要讲解如何通过webSocke将消息推送给前端。我们使用的是 .Net Core 3.1 + 原生 webSocket ,前端使用的是VueJS。在websocket中订阅redis消息,当收到订阅消息时,处理并发送给前端。实...
2022-02-07 16:25:38
4705
原创 在#中使用 gRPC 及 Protobuf通信协议 学习笔记
划重点:1、命名空间和包名要指定,最好不要相同,避免冲突2、编写好 .proto 文件后,一定要 右键项目->编辑项目文件,增加ItemGroup,这里很重要,不然后面增加服务class时会提示找不到服务接口 1 2 3 4 5 <ItemGroup> <Protobuf Include="Protos\student.proto"GrpcServices="Server"/&g...
2022-01-11 11:34:14
251
原创 Redis学习
学习不迷路,收藏一些文章路径。1、深入学习Redis(1):Redis内存模型2、深入学习Redis(2):持久化3、深入学习Redis(3):主从复制4、深入学习Redis(4):哨兵5、深入学习Redis(5):集群...
2022-01-06 14:07:33
287
原创 Authorize权限验证
项目中需要用到权限验证,但是没做过,经过一番学习,找到了个简单的实现,这里记录一下,防走丢。项目使用的是.net freamwork 框架。用户请求时,需要在请求头中带权限验证参数。首先,建一个AuthorityFilterAttibute类,并集成AuthorizeAttribute。然后实现OnAuthorization方法,具体代码如下:public class AuthorityFilterAttibute : AuthorizeAttribute { ...
2021-12-21 16:06:32
2087
原创 Vue 页面刷新出现404(包含.net6程序)
服务器环境为 IIS8.0 ,web程序部署后可以直接访问,但是按F5等刷新操作后,会出现404错误,然后查看了Vue Router文档,发现,应该是页面重定向的问题,这里做个记录以免忘记。 解决:1、在服务器上 安装IIS UrlRewrite2、在web网站根目录中创建一个web.config文件,内容如下:<?xml version="1.0" encoding="UTF-8"?><configuration> <...
2021-10-19 14:15:52
1299
原创 IIS 8 环境安装配置完之后,程序报5.0
测试服务器操作系统(Windows Server 2012 R2)安装之后,需要重新安装配置IIS环境,同时安装了.net 和.net Core 3.0的环境,安装部署完成之后,添加网站,程序启动,一直报503错误,对应的应用程序池也停止运行,起初以为是IIS账户权限得问题,所以先做了如下配置:1、给用户NETWORK SERVICE加上访问IIS服务的权限开始 - 控制面板 - 管理工具 - 组件服务 - 计算机 - 我的电脑 - DCOM - IIS ADMIN SERV...
2021-08-09 17:51:53
252
原创 WebApi数据Excel导入和导出
一、Excel数据导入 excel数据导入,前后端传输的数据是文件流,我们前端用的是Vue.js 后端用的是.NetWebApi 。前端读取到文件流之后,通过ajax等发起请求,后端接收到文件流之后,首先转换为DataTable类型的数据,然后可以做相应的处理。我这里是将DataTable转换成对应的实体集合List<T>,然后再进行的数据库写入等操作。 话不多说,上代码:[HttpPost] public IHttpActionResu...
2020-10-16 11:39:48
2837
原创 C# DataTable类型与List<T> 的互相转换
1、DataTable转成List<T> 这种方式的是大小写不敏感的,DataTable的ColumnName和List里T的Property name 全部转换为小写字母去比较是否相同,不区分大小写。如果项目里需要区分大小写,把 var info = plist.Find(p => p.Name.ToLower() == dt.Columns[i].ColumnName.ToLower());这句代码修改为:var info = plist.Find(p =>...
2020-10-16 11:29:27
881
原创 C# Excel 文件流转换为DataTable类型
/// <summary> /// excel文件流转化成datatable /// </summary> /// <param name="fileStream">文件流</param> /// <param name="haveNote">是否包含备注</param> /// <returns></returns> ...
2020-10-16 10:46:07
1427
原创 搭建自己的Nuget Server服务器,并打包上传自己的程序包
一、搭建自己的Nuget Server 1、VS先创建一个“空Web项目”,.Net版本建议采用4.6或以上。 2、项目建好之后,引用-->右键,管理Nuget程序包...,打开Nuget包管理器,安装 Nuget.Server 包3、Nuget.Server包安装后,web.config会自动做相应变化。修改图示位置即可设置apikey。当然,如果在requireApiKey中设置为false,则不需要配置 4、启动服务器,可看到如下界面...
2020-08-25 16:52:43
842
原创 C# 类库项目里通过 DllImport 引用第三方dll时,dll文件应该放在哪个目录下
背景:做项目时,项目代码架构分为好几个不同的类库项目,在其中有个项目中需要引用第三方dll文件,然后我就迷茫了,dll文件应该放在类库项目的bin目录下还是放在启动项目的bin目录下。然后。。。。。经过一番尝试发现,需要放在启动项目的bin路径下。 举个简单的“栗子”,就是你如果在类库项目BLL下引用第三方A.dll,你打算用单元测试去调试这段代码,那你的A.dll 应该放在UnitTest项目的bin目录下。 注意:一定要把dll和它依赖的其他dll都放在UnitTest...
2020-08-24 16:08:03
3376
转载 MVC5网站部署到IIS7,页面无法正常加载问题
server 2008R2+IIS7.5下配置不会出现什么问题,但在在server2008+IIS7下的配置会出现错误“HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容。”参考了一下:http://www.cnblogs.com/fcu3dx/p/3773161.html修改web.config,这里也把代码拷贝过来替换web.con...
2019-05-27 10:47:43
1061
原创 MySQL Packets larger than max_allowed_packet are not allowed
MySQL Packets larger than max_allowed_packet are not allowedMySQL的一个系统参数:max_allowed_packet,其默认值为1048576(1M),查询:show VARIABLES like '%max_allowed_packet%';修改此变量的值:MySQL安装目录下的my.ini文件中的[mysqld]段中...
2019-05-13 14:40:53
339
转载 github下载慢,如何提高github下载速度
通过修改hosts文件来提速获取github的IP地址访问:https://www.ipaddress.com/网址 依次获取以下三个网址的IPgithub.com github.global.ssl.fastly.net codeload.github.com这是我获取的IP192.30.253.113 github.com 151.101.25.194 git...
2019-05-06 11:05:25
2201
2
转载 C#时间格式转换为时间戳
本文转载自: http://blog.csdn.net/ZFSR05255134/article/details/53066873?locationNum=4&fps=1 为了防止连接丢失,自己转载了一下。 using System.Collections; using System; /// <summary> /// C#时间格式转换为...
2018-11-09 09:57:04
1292
转载 String 变量只要被赋值就等于新new一个String对象
引言 字符串只要赋值就相当于新new一个对象,字符串变量指向这个新new的对象,之前的对象就成了没有引用指向的对象了。 看下面代码: public class Example { String str = new String("good"); char[] ch = { 'a', 'b', 'c' }; public...
2018-09-29 11:53:51
1326
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人