![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ASP.NET Core
文章平均质量分 66
qq_42799562
一心搞.NET Core
展开
-
未能找到类型或命名空间名
git仓库代码没有任何问题,拉到本地进行编译sdk就报错:未能找到类型或命名空间名原创 2022-12-15 17:54:50 · 150 阅读 · 0 评论 -
C#特性Attribute使用
特性本身并没有任何意义,但是可以通过反射来进行获取。原创 2022-09-12 14:47:21 · 415 阅读 · 0 评论 -
Unable to retrieve project metadata. Ensure it‘s an SDK-style project. If you‘re using a custom Base
Unable to retrieve project metadata. Ensure it's an SDK-style project. If you're using a custom BaseIntermediateOutputPath or MSBuildProjectExtensionsPath values, Use the --msbuildprojectextensionspath option.原创 2022-08-13 15:08:11 · 767 阅读 · 0 评论 -
Error: Unable to build IHost No DbContext named ‘PersistedGrantDbContext‘ was found.
TND,竟然是 Apollo appsettings.json 配置出错问题!!!原创 2021-12-04 18:30:32 · 1464 阅读 · 0 评论 -
深入理解 C# .NET Core 中 async await 异步编程思想
深入理解 C# .NET Core 中 async await 异步编程思想引言一、什么是异步?1.1 简单实例(WatchTV并行CookCoffee)二、深入理解(异步)2.1 当我需要异步返回值时,怎么处理?2.2 充分利用异步并行的高效性async await的秘密引言很久没来CSDN了,快小半年了一直在闲置,也写不出一些带有思想和深度的文章;之前就写过一篇关于async await 的异步理解 ,现在回顾,真的不要太浅和太陋,让人不忍直视!好了,废话不再啰嗦,直入主题:一、什么是异步?原创 2021-11-24 14:20:37 · 2353 阅读 · 0 评论 -
“Nullable object must have a value.” :“Object reference not set to an instance of an object.”
1.System.InvalidOperationException:“Nullable object must have a value.”介于这种情况,通常是:我们定义的数据类型允许为null时,又用它进行赋值所导致的!如:public int? Id { get; set; }public decimal? Price { get; set; }解决方案:1.在进行赋值之前确保,赋值对象已经存在值,即:非null;2.若无法确保是否存在值,给予一个默认值,即可;2.Syste原创 2021-09-14 15:31:22 · 2104 阅读 · 0 评论 -
could not be translated. Either rewrite the query in a form that can be translated
今天在编写Linq的时候,突然抛出这样一个异常:could not be translated. Either rewrite the query in a form that can be translated,之前就出现过,一直没怎么整明白,简单修复后就没再管,可是今天还相同的错误还是又重现了,大致的意思就是:Linq无法被翻译成成sql执行,恼人啊!其实解决也很简单,先看错误的写法:解决方案:对调一下位置,即可解决!口诀: from 数量少的 join 数量多的 on...原创 2021-09-07 17:35:32 · 7062 阅读 · 0 评论 -
“The given assembly name or codebase was invalid. (0x80131047)”
今天程序跑着跑着,突然冒出个不知名的错误,自己一头雾水!System.IO.FileLoadException:“The given assembly name or codebase was invalid. (0x80131047)”罪魁祸首,竟然是这个东东!不知道啥时候莫名其妙在项目的.csproj里生成了它,醉鸟,醉鸟!感谢同事的帮忙,终于超找出了它,去掉错误的程序集部分,总算成功解决!...原创 2021-09-06 16:11:33 · 1662 阅读 · 0 评论 -
浅谈Task多线程剖析await关键字
深入Task多线程剖析await关键字引言一、异步线程的使用二、await的妙用引言其实谈到多线程吧,首先应该联想到的是异步;那么异步究竟是什么呢?异步其实就好像你在家里做饭一样:同样的时间,你可以在用电饭锅煮饭的时候,这个煮饭的过程电饭锅煮它的,你只需要知道它在煮着的就是,但是不影响你又在进行洗或是炒菜的这个过程,仅此而已!比喻不太恰当,但意义就是这样,说的高大上点,就是利用CPU的时间片,通过线程来挂起任务,不必等到极大耗时的那个程序步骤或者方法执行完,才给你反馈结果,而是确保编译通过的情况下,让原创 2021-07-08 20:58:37 · 251 阅读 · 1 评论 -
gitlab+docker+gitlab-runner自动化部署.net core
gitlab+docker+gitlab-runner自动化部署.net core引言一、安装gitlab1.1 安装openssh-server1.2 安装邮件发送服务1.3 将gitlab导入服务器的Repository1.4 gitlab有两个版本,ee企业版收费,ce社区版1.5 初始化帐户1.6 登入系统,开放注册邮箱验证1.7 配置邮箱发送1.8 重新加载配置,就可以进行邮箱发送了二、安装Docker引言不知从什么时候开始,也不知道是不是误入歧途,干着开发的活,却热衷于运维的部署;也突然间原创 2021-06-24 16:12:15 · 907 阅读 · 0 评论 -
ASP.NET Core文件上传和下载
ASP.NET Core文件上传和下载一、文件上传1.1 获取文件后缀1.2 上传单文件1.3 上传多文件二、文件下载2.1 获取ContentType属性2.1 执行下载一、文件上传1.1 获取文件后缀 /// <summary> /// 获取文件后缀 /// </summary> /// <param name="fileName">文件名称</param> /// <原创 2021-06-16 15:27:50 · 1475 阅读 · 3 评论 -
Ocelot: Index was out of range. Must be non-negative and less than the size of the collection
ASP.NET Core+Consul+Ocleot 出错一、错误: Index was out of range.……1.1 Consul服务注入正常2.2 Ocelot报错: Index was out of range.……2.3 找出错误:原来是注入方式错误,更改注入方式三、Ocelot网关终于正常访问一、错误: Index was out of range.……1.1 Consul服务注入正常 public static void RegisterConsul()原创 2021-04-21 23:40:06 · 4154 阅读 · 2 评论 -
EF Core:The instance of entity type ‘ApiLogs‘ cannot be tracked because another instance with the……
EF Core:The instance of entity type 'ApiLogs' cannot be tracked because another instance with the……一、错误二、解决方案2.1 AsNoTracking2.2 手动配置一、错误二、解决方案这个问题,是 EF Core 对实体默认进行状态跟踪造成的,说的高大上一点,叫:线程安全 导致的,解决方法很简单,即:对读取的数据不进行跟踪即可!可以使用 AsNoTracking 属性,也可以手动控制!2.1原创 2021-04-21 22:46:11 · 1487 阅读 · 2 评论 -
Error:Could not find a part of the path .......
Error:Could not find a part of the path .......一、场景二、Bug重现三、解决方案一、场景现在公司有个需求,要在后台自定义报告内容:封面、内页、目录等;很明显,一定要用到文件上传的功能,Bug出现的问题是这样子的:· 1、本地正常运行,上传无误· 2、测试服务器运行正常,上传无误· 3、正式服就不行了,Error:Could not find a part of the path …很懵逼,因为本地和测试服运行都OK啊,根本无法定位,最难搞的原创 2021-04-20 18:33:06 · 8576 阅读 · 1 评论 -
ASP.NET Core实现依赖注入的批量注入
这里写目录标题一、数据层泛型接口的依赖注入1.1 编写公共接口1.2 公共接口的实现2.6 AutoMapperz注入1.3 在Startup.cs注入二、业务层的泛型依赖注入2.1 为什么要将将公共接口的实现分层?2.2 编写公共接口2.3 编写公共接口的实现2.4 在Startup.cs注入2.4 模型分层2.4.1 PO模型2.4.2 ListDto模型2.4.3 DetailDto模型2.5 业务应用2.5.1 接口继承2.5.2 接口实现2.6 在Startup.cs进行集中式注入三、Web层调用原创 2021-04-17 18:22:55 · 1458 阅读 · 0 评论 -
使用EPPlus实现Excel导出
使用EPPlus实现Excel导出引言一、如何获取对象(类)属性和值?1.1 创建对象(类)1.2 获取对象(类)的属性1.3 获取对象(类)的属性值二、通过对象(类)的属性和值进行导出2.1 NuGet:EPPlus2.2 创建EPPlus导出Excel的辅助类2.3 Web层调用导出引言使用EPPlus导出Excel我们在封装之前,需要明白怎么去根据一个对象(类)获取到其属性和属性的值,当我们提前弄清楚这个东东的话,对我们后续的工作就好开展了!因为EPPlus导出Excel是需要进行行列对应的,不原创 2021-04-16 19:11:38 · 2751 阅读 · 3 评论 -
ASP.NET Core WebApi配置跨域
ASP.NET Core WebApi配置跨域引言一、开启跨域访问二、配置跨域规则二、远程跨域访问引言当我们在项目的额开发过程中,使用到前后端分离,而不再是传统的MVC进行开发时,我们的WebApi项目默认是没有开启跨域的,因为浏览器安全性可防止网页默认同域策略。 同域策略可防止恶意站点从另一站点读取敏感数据。 有时,你可能想要允许其他站点对你的应用进行跨域请求。一、开启跨域访问这里只需要注意一下:必须将对的调用 UseCors 置于 UseAuthorization之前 ,UseRoutin原创 2021-04-05 21:06:54 · 3546 阅读 · 6 评论 -
ASP.NET Core使用NLog作为日志记录组件
ASP.NET Core使用NLog作为日志记录组件引言一、XML形式配置1.1 NuGet包1.2 根目录下直接创建nlog.config的xml文件1.3 在数据库中创建表1.4 在Prgram.cs中配置NLog1.5 Web层调用二、通过代码进行配置2.1 创建一个辅助类,读取appsettings.json2.2 appsettings.json配置2.3 使用代码对NLog进行配置2.4 Web层调用三、appsettings.json进行配置3.1 appsettings.json配置3.2原创 2021-04-03 02:31:49 · 410 阅读 · 0 评论 -
C#获取类的属性和值的方法(含List转Datatable方法)
C#获取类的属性和值的方法引言一、创建测试类二、获取泛型T的属性三、获取泛型T的值四、扩展:List转DataTable引言为什么会引出这样的问题呢?其实,这是必然的,因为我们在日常的代码编写中,当使用到泛型,如:public class ConvertHelper where T : class,new(),我们会发现此时想要对泛型T进行属性获取和值获取的时候,仿佛成了一个难题!一、创建测试类 public class User { public string Id原创 2021-03-25 15:53:48 · 1851 阅读 · 0 评论 -
ASP.NET Core的依赖注入
ASP.NET Core的依赖注入一、什么是依赖注入?1、DI是什么?2、IoC又是什么?二、ASP.NET Core依赖注入的实现1、什么是依赖项?2、依赖项解藕与注入实现一、什么是依赖注入?1、DI是什么?DI是一种软件设计模式,是一种在类及其依赖关系之间实现控制反转 (IoC) 的技术,故而在业界被称之为:依赖关系注入。千万不要被其名唬住了,以为是多么深不可测的东西!2、IoC又是什么?官方描述:大部分应用程序都是这样编写的:编译时依赖关系顺着运行时执行的方向流动,从而生成一个直接依赖原创 2021-03-23 10:14:47 · 436 阅读 · 0 评论 -
async/await异步和Task多线程您真的明白了吗?
Async异步和Task多线程异步引言什么是异步什么是TaskAsync和Task异步详解引言嗯,由于自己的无知和对知识总时一知半解的情况下,使自己一直纠结于这样的一个问题:究竟什么是异步,在C#中究竟是async定义了异步,还是使用了Task本身就是异步?很明显,在这样的问题下,觉得自己真的很傻逼。原本这样的问题的解释根本不存在,原因是:自己无知啊,对知识理解不透彻,怎么可能想明白。所以,经过一番痛苦的挣扎,终于明白了其中的意义,暫抒己见,还望路过的大神能够指点一二,万分感谢!什么是异步异步原创 2021-03-20 22:31:03 · 2899 阅读 · 7 评论 -
Quartz.NET+Windows服务定时任务发送邮件
Quartz.NET定时任发送邮件一、什么是Quartz.NET1、编写第一个定时任务2、编写触发器运行定时任务二、什么是Windows服务1、编写第一个Windows服务2、如何安装Windows服务3、如何卸载Windows服务三、完整代码示例一、什么是Quartz.NETQuartz是基于Java开源的一款制作定时任务的框架,不过也有.NET版本,传送门:Quartz.NET官网。简单的说,就是编写一个应用程序,让它定时去做什么!如:每天早上八点,定时给客户发送邮件,每周四给社区用户发送推广信息原创 2021-03-14 13:57:31 · 720 阅读 · 0 评论 -
ASP.NET Core生成好看的图形验证码
ASP.NET Core图形验证码引言生成随机数绘制图片画布画躁线画噪点画验证码完整代码示例引言ASP.NET Core的验证码呢,稍微有一点曲折,因为默认System.Drawing没有Bitmap对象,也就没法绘制对象,不过通过NuGet:ZKWeb.System.Drawing 可引入Bitmap对象,进行验证码图片的绘制。生成随机数随机数就比较简单了,给定特定的字符数组,通过Random来生成随机数拼接成对应的字符串,就得到了我们的随验证码的随即字符,这里我简单进行了封装,仅供参考!原创 2021-03-07 13:31:01 · 1912 阅读 · 0 评论 -
EFCore使用MySQL
EFCore使用SQL Server应该是鼻祖了吧,哈哈!不过使用MySQL的就比较少见了,至少官网是没有引导的。因为是MySQL微软的东西嘛,当然推崇SQL Server了;不过MySQL相对SQL Server更为轻量一些,我们就来简单整理下吧!Model层NuGet包如下:1、Microsoft.EntityFrameworkCore.Design2、Microsoft.EntityFrameworkCore.Tools3、MySql.EntityFrameworkCore4、Microso.原创 2021-03-03 11:32:03 · 3906 阅读 · 4 评论 -
ASP.NET Core读取AppSettings.json配置
在ASP.NET Core中读取配置字符串,并不像.NET那样直接Configuration.GetConnestionString()简单了,通过Startup.cs查看默认实现,是通过注入的!那么我们在其他层又如何去读取呢,通过实际代码发现,是没有GetConnectionString()方法的,也就是说,无法直接通过Configuration进行读取的!要想读取,其实也很简单,new 一下ConfigurationBuilder就可以了!var config = new Con.原创 2021-03-03 10:46:17 · 1038 阅读 · 0 评论 -
ASP.ET Core的Identity授权
以往做授权的时候,自己并不清楚什么样的体系才叫授权,记得在摸索的时候,在不明觉厉的情况下,采用的是通过重写在每个Action执行之前的OnActionExecuting方法来对Session判断是否存储当前用户的登录状态,来进行授权策略分配,但微软推出了一套完整的Identity授权体系,门槛的确很高,但使用起来相当方便,让我们告别OnActionExecuting的重写,一起去探索更丰富的代码世界吧!首先,创建一个类库项目,命名为Sys.ModelNuget的引用的第三方包如下:1、Micr.原创 2021-02-28 00:32:31 · 232 阅读 · 4 评论 -
ASP.NET Core使用HttpWebRequest发送请求
这里所讲的get与post请求,与平时我们在前台通过js传的get与post并不相同。比如我们有这样的一个场景:我们需要读取一个api的数据,在这个过程,我们想要在后台进行封装,从而返回给前台一个操作结果。就好像,我们在做微信开发的时候,自定义菜单、获取Access_Token我们都是通过在后台对其进行get和post请求来封装。比较抽象,示意图如下:首先创建一个API项目,并创建一个类:NuGet:Microsoft.AspNetCore.Mvc.NewtonsoftJson 作为格式化.原创 2021-01-28 20:47:05 · 3160 阅读 · 2 评论 -
ASP.NET Core负载均衡Session共享
负载均衡,很直白的说,就是:某一个服务,由多台服务器通过负载均摊后由多台机器作为服务器对该服务做出响应。其中最为困扰就是Session共享了,处理起来特麻烦。尤其让人吐血的是,透明替换啊,简直颠覆了我对程序认识。通过一番痛苦挣扎,终于解决!于是乎,就来简单记录下吧。一共三步:使用Session->Redis存储Session->统一不同机器之间的MachineKey。不同于缓存的是,Session记住需要保证是当前会话的一个状态,而缓存就相对比较简单了,如我需要一个key值,那我直接去缓存服务.原创 2021-01-15 18:35:45 · 1045 阅读 · 8 评论 -
ASP.NET Core使用Redis
ASP.NET Core使用Redis,目前我还未找到官方文档,不过总有高手能整理出来,找了网上一些博客,自己整理学习后,也简单记录下吧。NuGet: StackExchange.Redis,Microsoft.Extensions.Caching.Redis这两个包即可。配置appsettings.json,代码如下: "ConnectionStrings": { "Redis": "42.193.5.237:6379,password=密码,defaultdatabase=0,.原创 2020-12-23 21:57:11 · 1687 阅读 · 0 评论 -
ASP.NET Core使用Session
不知道各位伙伴在学习.NET Core过程中有没有发现,Session没法直接用的,和以前的.NET Framework框架相比,已经不再是简简单单的Session来调用了,这确实是个挺操蛋的问题,但是人家这么安排也有它的道理,让我们去更好的熟悉它的使用过程,其实Session的使用,相当于被它封装成了类似中间件这种独立的模块来使用,下面我们就来探究下,怎么.NET Core中使用Session:同样的,我们需要在Startup.cs注入一下Session,一行代码轻松解决:public void .原创 2020-11-28 11:26:26 · 373 阅读 · 0 评论 -
ASP.NET Core自启动
问题的追溯,还是从一开始接触.NET Core说起吧,不知道各位在使用的时候,有没有发现这样一个问题,当我们新建一个.NET Core的Web应用程序的时候,启动->运行,那叫一个爽,一点问题都没有,可是再细心一点的你一定会发现:哎,怎么回事,明明我更新了视图,怎么还是老样子,无论你怎么刷新,都是程序一开始启动的视图,若要更新,必须重启项目。这就很烦了,假如我们只是简单的修改前端样式,或者调整布局,修改一个字体都要重启才生效,是不是很烦。记得在.NET中,不是这样的啊。那么问题的产生一定有解决的方式.原创 2020-11-28 10:59:49 · 784 阅读 · 0 评论 -
一键生成永不重复的随机数
1、随机数随机数的处很多,比如验证码,想要的就是一个随机性,在C#语言中,提供了Random函数来产生随机数,但在实际应用过程中,我们会发现,当数据量访问大幅提升,高并发多线程的情况下,产生的随机数往往是不随机的,会存在很多重复相同的项。同时,比如前端编写css、js等文件封装完后,浏览器会默认开启缓存,不用每次加载和读取都重新下载,用以节省流量。但这 往往会造成我们开发人员的困扰,浏览器存在缓存的情况下,会导致我们新更新的css、js等文件并不会立即生效,甚至更糟糕的情况下,将会导致读取的一直是缓存文原创 2020-11-07 17:38:04 · 1834 阅读 · 1 评论 -
ASP.NET Core使用EFCore
1、使用EFCore首先需要安装以下几个包,直接Nuget:Microsoft.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.ToolsMicrosoft.EntityFrameworkCore.RelationalMicrosoft.EntityFrameworkCore.SqlServer2、配置连接字符串,这里使用上一节的加密算法来配置appsettings.json连接字符串这里需要注意,填充的一定是你的连接字符串加密数据,而不是原创 2020-11-07 17:06:52 · 922 阅读 · 1 评论 -
EFCore加密连接字符串
1、创建一个ASP.NET Core窗体应用程序布局相当简单2、编写加、解密算法using System;using System.Collections.Generic;using System.Security.Cryptography;using System.Text;namespace SNK.EncryptHelper{ public class AESKeyEncrypt { /// <summary> ///原创 2020-11-07 16:05:27 · 983 阅读 · 2 评论 -
递归生成树形(无限级)菜单
1、什么是递归?递归,简单的来说就是按照某种对应的规则,一直遍历循环,直到结束为止。在应用程序中,更直白的来说,就是自己调用自己。在实际应用中,我们会发现,按照常规的思维想要得到树形(无限级)菜单,根本是不可能的事,循环、遍历、赋值?好像都无法实现。那么这时,借助我们的递归思想和方法,就将这种不可能变成了可能,把这种复杂变得好像就是这么简单?对,这就是递归,一种突破常规思维的思想,明白它、理解它、应用它,一定会受益无穷!2、设计表这里需要说明一下,其实整张表最重要的三个字段呢,我已经在注释中标原创 2020-11-07 15:24:43 · 885 阅读 · 0 评论