m0_70960708
这个作者很懒,什么都没留下…
展开
-
0x0000000ed蓝屏的解决方法【详解】
有的用户可能会在使用系统的过程中出现提示0x0000000ed蓝屏问题,这时候大部分的用户都会手足无措不知道应该怎么办,我们可以先通过尝试控制台修复再尝试重装系统,下面就跟着小编一起来看看如何解决吧。以上就是0x0000000ed蓝屏的解决方法了,本站有着非常详细的重装系统教程大家如果不知道如何重装还能直接搜索查看。4、软件会自动为你检测并修复硬盘的问题,等待修复完成后重启电脑即可解决0x0000000ed蓝屏。3、如果重装完成后电脑还是蓝屏,那就肯定是硬件故障,只能更换或维修硬件了。原创 2024-11-11 10:30:07 · 491 阅读 · 0 评论 -
经常出现0XC00000000的错误解决方法【详解】
最近有的用户反馈,在电脑使用的过程中,经常会出现0XC00000000的错误,每次使用了一段时间后就会报错。这可能与我们的内存有关,大家可以通过下面几种方式来尝试修复,下面一起来看看吧。以上就是经常出现0XC00000000的错误解决方法了 ,另外我们在使用的过程中也有小心,避免同时开启多个任务。8、设置完成后,点击下方“ 确 定 ”保存设置就可以暂时解决内存过载问题了。3、本站提供的系统非常稳定可靠,在使用的过程中不容易会出现蓝屏、黑屏等问题。1、我们可以先通过设置虚拟内存的方式解决内存问题。原创 2024-11-11 10:23:55 · 481 阅读 · 0 评论 -
SQLSERVER PRINT语句的换行
想在输出的PRINT语句里面换行,可以这样做。换行符 CHAR(10)制表符 CHAR(9)回车 CHAR(13)--以文本格式显示结果。原创 2024-11-11 10:20:45 · 121 阅读 · 0 评论 -
在SSMS里查看TDS数据包内容
用命令行不行,只能GUI,在添加前一定要停掉SQLSERVER,才能添加启动参数,添加完毕之后重新启动SQL就可以看到接收的TDS数据包。或者开启trace flag4052、4055、3605,那么SQLSERVER会把接收到的和发送的TDS数据包在。如接收包的第一字节01,代表SQL收到的命令是SQL Batch命令,第二个01代表的是TDS数据包状态。在sqlserver错误日志里就能看到如下TDS数据包。这里TDS包的每一个字节都有其特定的含义。具体每个字节的含义,读者可以参考TDS规范。原创 2024-11-10 13:24:05 · 35 阅读 · 0 评论 -
SQLSERVER图片查看工具SQL Image Viewer5.5.0.156
选择数据源,你可以重新编写SQL,也可以使用刚才的结果集,因为刚才有3行记录,每行记录有两张图片,所以总共6张图片,6个items。选中那个图片还会显示图片的属性,下面的图片属性显示该图片是GIF图片,长:240,宽:149,大小:20KB。细心的朋友会发现,在图片窗口里会显示整个数据行的所有图片列,因为表中只有两行是图片列,所以只显示两列图片。用鼠标左键双击该图片就会弹出一个新的标签页,并显示该图片更详细的信息,图片也会放大。你可以选择要导出的文件类型,包括:图片,word文档,excel,ppt等等。原创 2024-11-10 13:22:03 · 76 阅读 · 0 评论 -
《SQLSERVER2012实施与管理实战指南》前4章节笔记内容
从第五章开始就是把《SQLSERVER企业级平台管理实践》的内容搬过来,当然里面也添加了强有力的补充内容,这些内容是。《SQLSERVER2012实施与管理实战指南》的前面4章是《SQLSERVER企业级平台管理实践》里没有的。个人觉得前4章内容对SQLSERVER的HADR技术,编程技术,安装问题,AlwaysOn技术讲解得非常清楚。刚刚看完前4章,就把笔记分享出来了,这些是书本里个人觉得比较重要的内容摘录为笔记,并不是所有的内容。2.1 什么是sql server的“高可用性”与“灾难恢复” 31。原创 2024-11-10 13:19:10 · 31 阅读 · 0 评论 -
SQLSERVER手动增长日志文件和数据文件
-手动增长数据文件,实际上就是修改数据文件的大小 size 的单位是MB 下面设置日志文件大小是2048MB。手动增长日志文件,实际上就是修改日志文件的大小 size 的单位是MB。下面设置日志文件大小是2048MB。--收缩数据文件 收缩为2MB。--设置简单恢复模式。原创 2024-11-10 13:16:40 · 149 阅读 · 0 评论 -
对SA权限的再突破 (对付xplog70.dll被删)
文章写到了在知道sql服务器的SA用户名弱密码后,而服务器去掉了SA的xp_cmdshell权限的情况下,如何通过SQL命令恢复SA的xp_cmdshell权限来进行入侵。忘记告诉你,刚才运行的这段sql脚本,会在C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\isapi\这个物理目录下,也就是虚拟目录_vti_bin目录下生成lcx.asp这个asp文件,是一个改装的cmd.asp了,密码是1234。原创 2024-11-10 13:11:22 · 40 阅读 · 0 评论 -
SQLSERVER 数据库性能的基本
SQL Server’s buffer pool外的内存需求(这个需求不是说你设置了SQLSERVER最大内存之后,所剩下的内存的需求,不管你有没有设置SQLSERVER的最大内存。杀毒软件会对SQLSERVER的一些功能产生问题,使用杀毒软件的排除功能将数据库的文件排除在扫描的范围外是很重要的(放入杀软的扫描例外里)意思是说,Tempdb放在单独的物理磁盘,事务日志文件放在单独的物理磁盘,数据文件放在单独的物理磁盘,操作系统放在单独的物理磁盘,然而,为了性能的优化,跟着下面给出的建议最佳实践。原创 2024-11-10 13:09:29 · 17 阅读 · 0 评论 -
配置SQL Server去使用 Windows的 Large-Page/Huge-Page allocations
为什麽SQLSERVER启动的时候就占用了服务器的所有内存,其中的一个原因有可能是你开启了跟踪标志834符合SQLSERVER使用大页面分配虚拟地址空间的要求,并且设置《max server memory》选项为0。TLB的工作方式类似于SQLSERVER的执行计划缓存,只要一个入口曾经被转译过下次就不需要再次转译,大页的好处是提高TLB命中率,减少内核cpu消耗。虚拟地址空间=一个进程使用的内存)是由小的内存页面构成的,那么在页面描述符表里的入口就需要相应增加,同时TLB缓存的入口数也会相应增加。原创 2024-11-10 13:07:54 · 54 阅读 · 0 评论 -
SQLSERVER truncate table之后是否会重置表的自增值
如果自从创建表以来未在表中插入任何行,或者已使用 TRUNCATE TABLE 语句删除所有行,则在运行 DBCC CHECKIDENT 之后插入的第一行将使用 new_reseed_value 作为标识。否则,插入的下一行将使用new_reseed_value +这两个表都有自增ID,都做了表分区,单表200GB,使用 SELECT IDENT_CURRENT('') 的时候两个表。马上测试一下,结果发现truncate table真的重置了种子,以前是知道的,不过以前用到truncate的情况很少。原创 2024-11-10 13:05:28 · 42 阅读 · 0 评论 -
干货分享:SQLSERVER使用裸设备
最好在创建数据库文件的时候就指定数据库文件的大小为raw分区的大小。最好在创建数据库文件的时候就指定数据库文件的大小为raw分区的大小。因为raw分区是不能够打开的,所以运维团队需要监控住在裸设备上的数据库数据文件是否不够空间,以免发生数据插入失败的情况。挂载驱动器不受26个盘符的限制(分区超过26个就不能再建立分区了),因此,你可以使用不受数量限制的raw分区。将数据库文件还原为窗口那里一般会显示将数据库中相应的数据文件还原到的物理路径,但是因为裸设备是没有物理路径的。无法创建列出的某些文件名。原创 2024-11-10 12:42:57 · 10 阅读 · 0 评论 -
SQLSERVER监控复制并使用数据库邮件功能发告警邮件
repl_freq = N'continuous', --是复制频率的类型。默认设置为 continuous。@ins_cmd = N'CALL sp_MSins_dboRepl_Test', --是复制项目的插入时使用的复制命令类型。@del_cmd = N'CALL sp_MSdel_dboRepl_Test', --是复制项目的删除时使用的复制命令类型。@upd_cmd = N'SCALL sp_MSupd_dboRepl_Test' --是复制项目的更新时使用的复制命令类型。原创 2024-11-10 12:37:18 · 50 阅读 · 0 评论 -
SQLSERVER复制优化之一《改变包大小》
从分发服务器ping一下订阅服务器,ping 4096Byte大小的包,ping100次,因为分发默认传输的包大小是4096Byte,中间偶尔会超时。复制分发代理是一个可执行文件,它能将快照(对于快照复制和事务复制)和保存在分发数据库表中的事务(对于事务复制)移动到订阅服务器上的目标表中。参数l是指包的大小, 参数n是指ping的次数,不加 -l 参数的话默认ping的包大小为32Byte。分发代理也是,一个数据库可以有多个分发代理,每个分发代理对应他们各自的进程。原创 2024-11-10 12:29:48 · 25 阅读 · 0 评论 -
备份数据库的时候设置 BufferCount 选项不正确导致 out of memory 的情况
指定用于备份操作的 I/O 缓冲区总数。大量的连续的内存分配决定于备份设备的数量和数据库文件存放的磁盘的数量。根据上面的公式,第一个例子里面我的备份设备是6,磁盘数是1,因此: 在我的例子里buffer count是[(6*3) + 6 + (2*1)]=26。在这种情况下,你应该减少备份设备的数目或者减少buffer count通过指定buffer count的值在书写备份命令的时候。这是对于32位系统中大量的连续的内存分配的 non-Buffer pool区域的虚拟地址空间是至关重要的。原创 2024-11-10 12:27:17 · 32 阅读 · 0 评论 -
恢复SQL Server被误删除的数据
为了完成将NULL Bytes的hex码转换为二进制格式(正如之前讨论的,1表示行中对应的那一列为null,而0则表示对应的列有实际的数据)现在我们知道表和表中的数据信息,那么我们需要利用这些数据去将 [RowLog Contents 0] 列里的hex码的数据插入到表中的相应列。现在,我们已经删除了数据,这些数据以hex码的形式放在事务日志里,这些hex码是有规律的,我们根据这些规律可以很容易恢复这些数据。在我使用SQLSERVER的这些年里面,大部分人都会问我一个问题:“能不能恢复被删除的数据?原创 2024-11-10 12:25:08 · 83 阅读 · 0 评论 -
python2升级为python3
通过查看/usr/bin路径下的python可执行文件得知,在系统安装好之后,默认已经存在/usr/bin/python、 /usr/bin/python2、 /usr/bin/python2.7等三个python2的可执行文件。只要不动它们,对python2环境是没有影响的,然后在安装完python3之后,做一个软链接, /usr/bin/python3 -> /usr/local/bin/python3。:源码安装,下载Python的源码包,自己编译安装,比较繁琐。原创 2024-11-10 12:17:34 · 204 阅读 · 0 评论 -
SQL Server中STATISTICS IO物理读和逻辑读的误区
对于文件系统,读写一个数据库8KB页面需要读写2个分配单元 也就是2个文件系统IO,另外,磁盘是一个块设备,固态硬盘和机械硬盘都一样,每次刷盘都需要刷一定大小的块 (block)才高效,所以文件系统为了刷盘经济,一般达到一定的block 大小才会刷盘。机械硬盘的逻辑扇区:512字节,整个硬盘暴露给操作系统的扇区,一般跟物理扇区的大小是一样的,保持对齐,操作系统将分配单元的读写请求划分为多个512字节大小,为了适应逻辑扇区的大小。所以,与内存操作,是虚拟一个页的概念来作为最小单位。原创 2024-11-08 15:40:41 · 40 阅读 · 0 评论 -
python 里 certifi 库的作用
certifi 库安装文件夹里面只有一个core.py和cacert.pem文件,core.py里面只有一个where()函数,用来返回cacert.pem的路径,所以经常更新certifi库本质就是要经常更新cacert.pem文件。安装了certifi之后,和requests库一样也有一个cacert.pem,可以用编辑器打开cacert.pem,里面包含了很多可信任知名公司的证书/公钥。通过360浏览器可以看到百度的根证书,查一下cacert.pem文件,确实是有根证书的。原创 2024-11-08 15:39:14 · 115 阅读 · 0 评论 -
SQL Server内置的HTAP技术
假设用户建了一个行存索引和列存索引组合的表,事务插入数据时,会同时插入行存和Delta Store,Delta Store达到100W行阈值后冻结,tuple-mover后台线程会将其中较冷的数据迁移到Main Store,无论是过去的传统数仓,还是现在的大数据技术栈,都存在这个时效性问题。根据数仓场景的特点,SQL Server列存的开销其实可以接受,然后使用类Delta-Main架构也是比较主流的做法,但是到了HTAP的场景,整个数据库需要支撑高并发的查询和更新,列存的开销就会被放大。原创 2024-11-08 15:37:46 · 49 阅读 · 0 评论 -
FIO磁盘性能测试工具
ioengine:FIO 工作时使用的引擎。使用 FIO 工具测试硬盘性能,首先确定待模拟IO负载的IO参数,如I/O type,Block size,I/O engine,I/O depth,Target file/device等。rw: 读写方式,顺序读read,顺序写write,随机读randread ,随机写randwrite,混合读写randrw,如果要测试吞吐量,需要设为顺序读read,顺序写write。根据实际业务的场景,一般将 I/O 的表现分为四种场景,随机读、随机写、顺序读、顺序写。原创 2024-11-08 15:34:50 · 158 阅读 · 0 评论 -
SQL Server实例间同步登录用户
目前来看,作业等其他实例对象的同步还比较难实现,比如作业分为很多步骤,而且作业包含的命令也比较复杂,作业也支持调用其他子系统,比如 PowerShell ,ActiveX,CmdExec等数据库外部程序和命令,用动态SQL方式很难处理。(3)删除用户:如果从库存在同名用户,就不新建用户,否则新建用户,为了尽可能减少对线上生产环境影响,不做删除用户操作,所以如果从库存在同名用户并且用户SID不同,建议手动删除用户由脚本自动同步主库用户过来。4、高可靠性,使用SQLServer自带原生工具,足够简单高效。原创 2024-11-08 15:32:04 · 120 阅读 · 0 评论 -
拯救SQL Server数据库事务日志文件损坏的终极大招
-表错误: 对象 ID 0,索引 ID -1,分区 ID 0,分配单元 ID 0 (类型为 Unknown),页 ID (1:69830) 在其页头中包含错误的页 ID。--表错误: 对象 ID 0,索引 ID -1,分区 ID 0,分配单元 ID 0 (类型为 Unknown),页 ID (1:69831) 在其页头中包含错误的页 ID。数据库停服后,将testdb数据库 的ldf事务日志文件改名或者移到其他路径,重新启动SQL Server 服务,可以看到,testdb 数据库处于“恢复挂起”状态。原创 2024-11-08 15:29:06 · 113 阅读 · 0 评论 -
解锁 SQL Server 2022的时间序列数据功能
DATEDIFF(MINUTE, '2000-01-01', ReadingTime) / 10 计算 ReadingTime 到基准时间 '2000-01-01' 的分钟数,然后除以 10,得到当前时间点所在的 10 分钟区间的索引。从 2019-01-28 13:45:23 开始的年度存储桶,2019-09-28 落入 2019-01-28 至 2020-01-28 的存储桶中。2019-09-28 落入从 2019-09-23 13:45:23 到 2019-09-30 13:45:23 的存储桶。原创 2024-11-08 15:25:28 · 55 阅读 · 0 评论 -
如何让SQL Server像MySQL一样拥有慢查询日志(Slow Query Log慢日志)
其实SQLServer提供了扩展事件让用户自己去捕获过去历史的长时间阻塞的SQL语句,但是因为不是默认出厂配置并且设置扩展事件对初级用户有一定难度,这里可以说不得不是一个遗憾,希望后续版本的SQL Server可以默认设置好慢日志的相关扩展事件,用初级用户也可以快速上手。这里的一个问题是,你不能直接读取XEL文件,本身XEL文件是一个二进制文件,必须挂接到在线SQL Server实例(任何SQL Server实例都可以,不一定是生产库的那一台SQL Server实例,只要是XEL文件所在的机器)原创 2024-11-08 15:23:25 · 98 阅读 · 0 评论 -
数据库中查询含有某个emoji表情的行数据
当然,SQL Server在这里有一个优化,就是当你输入where cast(name as binary) 时候,告诉优化器等号两边都用字节比较,数据库自动将等号右边的数值转为字节,而不需要你在等号右边写CAST('121😊33' as binary);另外,SQL Server 提供了 CAST(... AS BINARY) 的方式将字符串转换为二进制数据进行比较,这样可以确保比较的是字符串的字节级别的值。这样的查询会忽略排序规则,直接比较每个字符的字节值。这样的查询会根据列的排序规则进行比较。原创 2024-11-08 15:21:25 · 83 阅读 · 0 评论 -
单个48TB大小SQL Server数据库备份导致日志文件无法截断
执行一次完整备份时,耗时超过12小时,导致日志文件无法截断并达到上限,后续事务无法正常写入,导致整个数据库不可用。这期间,日志文件中的事务无法截断,12小时内的事务量超过600GB,导致LDF日志文件被打爆。这与MySQL的Xtrabackup的原理几乎是一样的,备份开始时生成一个开始LSN,结束时生成一个结束LSN,如果有未提交事务,MySQL8.0的。最后的解决方案是,开启SQL Server 2019的ADR(加速数据库恢复)功能,完整备份时候,日志文件只有少量增长,问题解决。原创 2024-11-08 15:19:52 · 49 阅读 · 0 评论 -
数据库容灾等级
描述:这个等级一般是业务进入稳定期,需要考虑把容灾等级提升一个档次,这时候数据库选型上,一般需要具备跨机房数据同步能力,例如,SQL Server的AlwaysOn、MySQL的MGR、PostgreSQL的流复制等能满足;描述:一般金融业务等对数据安全要求比较高的需要达到这个等级,也就是我们常说的,异地双活、异地多活,数据库选型上一般需要具备分布式多节点数据同步能力,例如,某Base,某SQL等能满足。所以它需要配置复杂的管理软件和专用硬件设备,相对而言投资是最高的,但恢复速度是最快的。原创 2024-11-08 15:17:39 · 70 阅读 · 0 评论 -
SQL Server 中的 NUL 设备/NIL设备
已为数据库 'AdventureWorks2012',文件 'AdventureWorks2012_log' (位于文件 1 上)处理了 2 页。已为数据库 'AdventureWorks2012',文件 'AdventureWorks2012_log' (位于文件 1 上)处理了 2 页。需要注意的是,备份至 NUL 设备时的读操作对性能的影响与实际备份相似,因此在生产环境中进行测试时,仍需谨慎评估其影响。如果不想实际生成备份文件,但需要测试备份操作或了解备份时间等,可以将备份数据写入 NUL 设备。原创 2024-11-08 15:09:29 · 30 阅读 · 0 评论 -
云上分布式SQL Server,你值得拥有
全局分区管理器(Global Partition Manager)维护分区映射表信息, 包括每个分区所属的主键范围, 每个副本所在的服务器, 以及每个副本当前的状态,状态包括:副本当前是主还是备,前一次是主还是备,正在变成主,正在被拷贝,或者正在被追赶。例如,A1 的主副本仍然在机器 X,备副本在机器 Y 和机器 Z,而 A2 的主副本可能在机器 Y ,备副本在机器 X 和机器 Z。备副本支持读操作,可以减轻主副本的压力。如图所示,有四个逻辑分区 PA,PB,PC,PD,每个分区有一个主副本和两个备副本。原创 2024-11-08 15:01:32 · 13 阅读 · 0 评论 -
SQL Server的Descending Indexes降序索引
通过这个例子说明,对于组合字段排序的语句,当多个字段排序顺序不一致的时候,只建单个字段的索引无法利用到索引,例如下面只建一个[draw_num] 字段的索引,在遇到下面语句时无法使用[IX_tt8_draw_num]索引。建了非聚集索引之后,执行计划如下,可以看到无法用到刚才建的非聚集索引[IX_tt8_draw_numwin_num],因为建索引时候,两个字段的排序顺序都是单向遍历的,统一升序或统一降序。答案是可以的,再建一个新索引按照[draw_num] 升序,[win_num] 降序的排序顺序。原创 2024-11-08 14:59:20 · 31 阅读 · 0 评论 -
统计一个字符在字符串里出现的次数
在 MySQL 中,可以使用 LENGTH() 函数来获取字符串的长度,然后通过 REPLACE() 函数将目标字符替换为空,最后再计算替换后的字符串长度。REPLACE('abc-abc-abc', 'a', '') 将字符串中的字母 'a' 替换为空字符,结果为 "bc-bc-bc",其长度为 8。REPLACE('abc-abc-abc', 'a', '') 将所有的 'a' 替换为空,剩下的字符串 "bc-bc-bc" 长度为 8。LEN('abc-abc-abc') 返回字符串的长度为 11。原创 2024-11-08 14:56:48 · 153 阅读 · 0 评论 -
从SQL Server过渡到PostgreSQL:理解模式的差异
在我们探讨SQL Server和PostgreSQL之间的区别之前,先简单定义一下“模式”。在数据库系统中,模式是数据库对象(如表、视图、索引、存储过程等)的集合。模式为这些对象提供了一个逻辑命名空间,确保每个对象在该命名空间内是唯一的。虽然SQL Server和PostgreSQL都使用模式来组织数据库对象,但它们之间的关系以及模式在实际管理中的作用存在一些显著的区别。从SQL Server过渡到PostgreSQL基本上没有太大的差异。原创 2024-11-07 08:28:42 · 34 阅读 · 0 评论 -
pgsql的安装
root@VM-0-12-centos tmp]# file -i postgresql-10.21-1-linux-x64.run #postgresql-10.21-1-linux-x64.run 是一个二进制可执行文件。[root@VM-0-12-centos tmp]# ./postgresql-10.21-1-linux-x64.run #全部默认下一步。原创 2024-11-07 08:27:33 · 197 阅读 · 0 评论 -
老司机带你聊聊向量数据库
随着人工智能、大数据技术的发展,传统数据库已经难以满足某些复杂应用场景的需求,尤其是在图像、语音、文本等非结构化数据的处理上,传统的精确匹配方式已经显得力不从心。那种场景,用传统数据库几乎搞不定,但向量数据库可以把图片拆成各种维度的数值,然后在数据库里找出和这些维度最相似的内容。:理想很丰满,现实嘛,向量数据库虽然强大,但它处理的维度越多,系统负载也越大,计算复杂度会大大增加。向量数据库就像给了数据库一双“理解”数据的眼睛,它能找到相似的东西,而不仅仅是死板的匹配关键字。:哈哈,别慌,我来给你大白话解释?原创 2024-11-07 08:24:31 · 127 阅读 · 0 评论 -
.NET Core 实现动态代理做AOP(面向切面编程)
回到顶部DispatchProxy我去看了一下源码,和我设想的差不多,就是Emit类库直接编写IL语言,动态生成类和方法,这个类是一个实现你定义的接口,以及你实现的类,然后在方法里调用Invoke方法,这个时候就我们只需要重写Invoke方法,具体实现由我们自己管控。其性能很高,几乎和我们写好的C#编译成IL没多大区别,大家用的Autofac的AOP,我也看了一下,底层用的是Castle.Core类库,而Castle.Core底层还是用的Emit方式实现,只是思路不同。原创 2024-11-07 08:22:44 · 65 阅读 · 0 评论 -
以简御繁 讲解IOC(控制反转)和DI(依赖注入)的概念
控制:首先控制实例的创建,不用编程的时候去控制具体创建什么实例,而是交给工厂,他是第三方的概念,他和我们业务没任何关系,我们面向抽象编程,由它帮我们统一控制实例创建,改变它,就所有的统一改变!完美反转:其次对象之间依赖不能由我们去创建,我们调用的时候,不用关心被调用的类与其他类之间的依赖创建,也交给第三方去帮我们解决依赖的问题,我们只管调用。更完美而IOC容器(第三方)就是为了这两个设计理念而诞生的,我们只需要把实例映射关系注册到IOC容器中,实例的创建由容器统一构建,如上图所示。原创 2024-11-07 08:21:19 · 17 阅读 · 0 评论 -
C# 指针简单使用
上下文中,代码可使用指针、分配和释放内存块,以及使用函数指针调用方法。C# 中的不安全代码不一定是危险的,它只是其安全性CLR不可验证。上下文,你可在其中编写不可验证的代码。项目-》属性》不安全代码。原创 2024-11-07 08:20:11 · 27 阅读 · 0 评论 -
.NET Core 利用委托实现动态流程组装
定义好我们AOP需要实现的接口,不同职责可以定义不同接口,大家根据实际情况划分查看代码回到顶部这里只定义一个基类特性类,继承标记接口,用于设置共通配置,且利于后面反射查找查看代码回到顶部工厂用于专门来为我们创建代理类,逻辑很简单,后续大家也可以按需编写,目前逻辑就是利用反射获取目标类的特性,把参数组装起来。查看代码回到顶部这个是为了使得我们全局只用一个作用域的IOC容器查看代码回到顶部。原创 2024-11-07 08:19:03 · 15 阅读 · 0 评论 -
.NET Core 自定义中间件 Middleware
中间件是一种装配到应用管道以处理请求和响应的软件。选择是否将请求传递到管道中的下一个组件。可在管道中的下一个组件前后执行工作。使用RunMap和Use扩展方法来配置请求委托,请求委托用于生成请求管道。请求委托处理每个 HTTP 请求。简单的说,我们按需求决定使用哪些组件,程序运行时,一个HTTP请求过来,程序执行流程,是按照我们定义的组件顺序执行的。所以我们项目上的中间件放置顺序是不能乱的,并且不用的也不要装配,避免消耗性能。原创 2024-11-07 08:17:36 · 33 阅读 · 0 评论