- 博客(43)
- 收藏
- 关注
原创 FreeSql + .Net6 多库连接实现
3、 创建仓储类 ServiceLocator。1、安装Nuget包 AutoMapper。5、创建ServiceBase类。6、创建你自己的Service。7、创建Base实体类。
2025-02-27 16:40:12
348
原创 记一个雪花ID生成的工具类
while (timestamp <= lastTimestamp)//这里获取新的时间,可能会有错,这算法与comb一样对机器时间的要求很严格。/// 动态生产有规律的ID Snowflake算法是Twitter的工程师为实现递增而不重复的ID实现的。if (timestamp < lastTimestamp)//比如修改电脑时间导致。
2025-02-27 16:17:46
829
原创 solidworks PDM 插件的安装和更新
2、打开PDM管理界面,选择库->插件->找到需要更新的插件,双击打开,选择文件->添加文件,选择所有的文件,点击打开,最后点击确定,会弹出跟安装时一样的提示,点击确定即可。找到插件文件所在的文件夹,选择所有的dll文件,点击打开,然后会弹出提示窗口,提示客户端需要重启PDM,点击确定即可。2、打开PDM管理界面,选择库->插件->新插件。显示如下界面,表示插件已经加载到了,点击确定。1、复制最新的插件文件到目录。三、最最最重要的一步。
2024-09-18 14:23:44
2119
原创 菜鸟的进击之.net6控制台应用程序接收参数
打开程序所在目录,在文件夹空白处,按shift+鼠标右键->在此处打开Powershell窗口,然后输入start cmd 就可以直接在程序目录内打开cmd窗口啦,或者直接打开cmd窗口再定位到程序所在目录也行。Main(args);这句是必须要加的,我最开始就是忽略了这句,一直测试没成功。1、新建控制台应用程序,新建-添加项目-控制台应用。2、3、下一步,填写项目名称和代码存放的位置。3、下一步,框架选择.net 6 ,点击创建。4、然后项目就创建完成啦,
2024-08-23 13:40:19
421
原创 菜鸟爬坑记之.Net 6 WebApi项目中使用Log4Net报log4net:ERROR Xml element is - not a <log4net> element.
二是同样的config文件,带时在.net4.5环境下就能正常解析并输出,估计是跟版本升级做了优化有关,具体的原因不知,有知道的大佬还请不吝赐教。搜索了一圈没找到解决办法,然后就只能回到了问题本身,看错误信息是xml的元素不对,但是我config文件的内容是从其他大佬那复制过来的,按理说不会不对啊.......,我去看了我的配置文件,果然上面包了一层,我就尝试着把他去掉,果然问题解决了,成功输出。
2024-08-23 11:29:52
404
原创 .Net 6 WebApi项目中使用Log4Net详解
众所周知as we know, log4Net是一个很方便的日志输出工具,但是,每次使用,日志都没有顺利输出过.....各种不知名问题.......所以就记录一下,方便下次使用。具体的与原理和基础在此不做赘述,咱直接上干货,在项目中如何使用。
2024-08-23 11:16:05
550
原创 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
537
原创 .Net6 记一次RabbitMq消息订阅/发布优化
数据合并,首先创建一个线程安全的全局变量集合A,消息订阅后,放到统一放到集合A中,当集合A中的数据达到设定的阈值(比如500条)时统一进行。这里不进行代码的展示,仅分享优化思路,当然过程中还有很多其他的实现小细节,由于当时没记录,现在有点忘记了,等想起来再进行补充。消息合并又分为两部分,一是发布时把多个数据包消息合并之后统一进行发布,二是发布消息使用批量发布的方式。经优化后,项目满足了2000台设备数据的实时上报,但未进行上限测试,优化效果还是非常明显的。3、通过异步多线程的方式去处理任务。
2024-01-17 10:55:19
850
原创 .Net 6 下WorkerService+RabbitMq实现消息的异步发布订阅
近期项目里有需要用到RabbitMq实现一些业务,学习整理之后在此记录一下,如有问题或者不对的地方,欢迎留言指正。
2024-01-17 10:21:21
1241
原创 C# 生成指定长度的随机字符串
生成的字符串中是否包含小写字母/// 生成的字符串中是否包含大写字母/// 生成的字符串中是否包含数字/// 生成的字符串中是否包含符号/// 随机字符串长度
2024-01-17 09:23:26
880
原创 .Net 6 Nacos日志控制台疯狂发输出+Log4Net日志过滤
3、最后,突然想到在添加日志时加过滤选项:在program.cs 中修改日志的配置,添加过滤项config.AddFilter(),上代码。1、提高nacos日志级别,然后再屏蔽相应级别的日志:在我没有找到怎么修改nacos日志级别的方法,希望路过的大佬能指点一下。虽然这个方法有些暴力,但是完美的解决了我的问题,在此记录一些,有同样困扰的码友,希望本文能提供帮助或思路。
2023-11-10 11:08:08
1216
原创 记一次 .Net+SqlSugar 查询超时的问题排查过程
emmmm事情再次变得诡异,明明sql没什么差别,除了 * 和 列出各属性,按照我之前的了解,查询时使用字段名,比 select * 的效率是要高的,不知道sqlSugar内部的执行机制到底是怎么样的,为什么会有这个问题,现在没时间深究,先记录一下,希望能给遇到同样问题的小伙伴提供参考。随后,我查询了数据库的事务日志,发现也是正常的,emmm事情陷入了僵局.....环境和版本:.Net 6 + SqlSuger 5.1.4.*
2023-10-26 15:00:29
2148
转载 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
954
原创 EF Core DbContext 线程安全
前言.Net Core WebApi Redis消息订阅_菜鸟Coco的博客-优快云博客后续好不容易处理好后台任务,结果会时不时报错: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
4032
原创 .Net Core WebApi Redis消息订阅
Redis 帮助类RedisHelper之前发布过帖子,指路.Net Core WebApi Redis消息订阅与发布本帖着重主要记录一下WebApi 订阅Redis消息。故事的起因 我们需要使用Redis缓存,进行数据存储于处理,起初直接更新Redis,由于需要频繁更新和多线程操作,导致redis操作时卡死,经过一番某度了解,决定使用消息的订阅-发布 进行操作,然后做为菜鸟的我就开始发愁了,然后又经过某度一番了解,故事徐徐展开......故事的发展...
2022-04-01 17:27:03
3325
原创 Redis帮助类
首先,安装StackExchange.Redis,新建RedisHelper类,代码如下:public class RedisHelper : IDisposable { //连接字符串 private string _connectionString; //实例名称 private string _instanceName; //默认数据库 public int _defaultDB; .
2022-02-07 17:27:55
976
原创 .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
1700
原创 使用Redis订阅+Websocket 将消息推送给前端
前言首先说一下业务,我们的webapi需要从redis订阅消息,并把订阅到的消息推送给web前端。要求不同的用户建立不同的websocket连接,并把websocket要把消息分发给不同的用户。Redis的消息订阅与发布并不复杂,这里不再赘述。主要讲解如何通过webSocke将消息推送给前端。我们使用的是 .Net Core 3.1 + 原生 webSocket ,前端使用的是VueJS。在websocket中订阅redis消息,当收到订阅消息时,处理并发送给前端。实...
2022-02-07 16:25:38
4646
原创 在#中使用 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
243
原创 Redis学习
学习不迷路,收藏一些文章路径。1、深入学习Redis(1):Redis内存模型2、深入学习Redis(2):持久化3、深入学习Redis(3):主从复制4、深入学习Redis(4):哨兵5、深入学习Redis(5):集群...
2022-01-06 14:07:33
282
原创 Authorize权限验证
项目中需要用到权限验证,但是没做过,经过一番学习,找到了个简单的实现,这里记录一下,防走丢。项目使用的是.net freamwork 框架。用户请求时,需要在请求头中带权限验证参数。首先,建一个AuthorityFilterAttibute类,并集成AuthorizeAttribute。然后实现OnAuthorization方法,具体代码如下:public class AuthorityFilterAttibute : AuthorizeAttribute { ...
2021-12-21 16:06:32
2047
原创 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
1288
原创 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
240
原创 WebApi数据Excel导入和导出
一、Excel数据导入 excel数据导入,前后端传输的数据是文件流,我们前端用的是Vue.js 后端用的是.NetWebApi 。前端读取到文件流之后,通过ajax等发起请求,后端接收到文件流之后,首先转换为DataTable类型的数据,然后可以做相应的处理。我这里是将DataTable转换成对应的实体集合List<T>,然后再进行的数据库写入等操作。 话不多说,上代码:[HttpPost] public IHttpActionResu...
2020-10-16 11:39:48
2792
原创 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
865
原创 C# Excel 文件流转换为DataTable类型
/// <summary> /// excel文件流转化成datatable /// </summary> /// <param name="fileStream">文件流</param> /// <param name="haveNote">是否包含备注</param> /// <returns></returns> ...
2020-10-16 10:46:07
1409
原创 搭建自己的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
828
原创 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
3296
转载 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
1042
原创 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
325
转载 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
2181
2
转载 C#时间格式转换为时间戳
本文转载自: http://blog.youkuaiyun.com/ZFSR05255134/article/details/53066873?locationNum=4&fps=1 为了防止连接丢失,自己转载了一下。 using System.Collections; using System; /// <summary> /// C#时间格式转换为...
2018-11-09 09:57:04
1283
转载 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
1302
原创 开发资料工具连接
1、MSDN库,开发可用的软件、技术资料库 链接:https://msdn.itellyou.cn/?lang=zh-cn 2、阿里巴巴矢量图标库 ,链接:http://www.iconfont.cn/search/index?q= 3、维系小程序开发表单组件,链接:https://developers.weixin.qq.com/miniprogram/dev/comp...
2018-08-06 16:24:38
334
转载 WPF中的Image控件Source的设置
WPF中的Image控件Source的设置1.XAML中简单的方式(Source="haha.png");image控件的Source设置为相对路径后(Source="haha.png")运行不能显示解决方案:当Source设置为相对路径后(Source="haha.png")改成“/WpfApplication1;component/haha.png”。2.逻辑代码中img.Source = n...
2018-06-27 16:53:12
57087
2
原创 C#中DateTime类型数据格式化
今天做项目时遇到了这样一个问题,我需要把一个string类型的数据转化为DateTime类型的数据,但转换后的数据格式却不是我们想要的标准格式(yyyy-MM-dd HH:mm:ss格式),转换后的DateTime数据的格式是与当前系统设置的时间格式是一样的,十分惊恐!!!!怎么办!!!程序肯定不能依赖于系统啊,,,,心里歪歪 稳住,我们能赢!!!于是我开始在茫茫百度问题寻找答案,经过一上午的...
2018-06-27 16:51:47
5490
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人