![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
.NET CORE
C++业余爱好者
很多人努力奔跑也很难追赶上年轻时的步伐,更何况,大部分人都是走走停停。
展开
-
转发和重定向
转发的地址栏不变,而重定向变成转发后的资源。转发是一次请求,而重定向是两次请求。所以一般可以说重定向是2次转发。转发只能在自己内部服务器资源内相互转发,而重定向可以访问其他站点。原创 2022-12-14 11:48:35 · 301 阅读 · 2 评论 -
Windows设置redis开启自动启动
我们需要进入到你安装的Redis的目录中,通过DOS命令redis-server --service-install redis.windows-service.conf --loglevel verbose。虽然启动了redis,但是只要一关闭cmd窗口,redis就会消失。所以要把redis设置成windows下的服务。打开电脑的服务列表发现并没有所谓的Redis的服务。再次打开系统服务,刷新你就可以看到Redis的服务。原创 2022-11-10 14:31:16 · 555 阅读 · 0 评论 -
nginx退出却依然能访问页面或未及时刷新
注意,一般会有多个nginx.exe进程在执行,所以要删除多个。当你以为你删除了所有的nginx.exe进程却发现依然能访问页面的时候,再按照上面所示在tasklist中查找一下nginx.exe进程,有时你会惊喜地发现怎么还有?——直到nginx.exe删除干净后就会发现无法访问页面了,一切也就正常了。原创 2022-09-22 13:36:11 · 1904 阅读 · 0 评论 -
SQL语句根据分割符分割字符串
利用PARSENAME函数分割字符串DECLARE @str nvarchar(50)=N'NBA||湖人||老詹||MVP';SELECT PARSENAME(REPLACE(@str,'||','.'),4), PARSENAME(REPLACE(@str,'||','.'),3), PARSENAME(REPLACE(@str,'||','.'),2), PARSENAME(REPLACE(@str,'||','.'),1) ...原创 2021-12-04 17:11:43 · 1555 阅读 · 0 评论 -
秒懂 SCOPE_IDENTITY
场景表A主键是自增列,插入一条记录后想要获取这条记录主键的返回值,这时候可以用SCOPE_IDENTITY 。示例建表语句CREATE TABLE TestTable(ID int identity(1,1) not null,Name varchar(20) not null)插入记录,看是否能获取到主键的返回值INSERT INTO TestTable(Name) values('张三') SELECT SCOPE_IDENTITY()SELECT * FROM TestTable原创 2021-12-01 10:11:52 · 1610 阅读 · 0 评论 -
LEFT JOIN/JOIN/OUTER APPLY/CROSS APPLY的比较
建表CREATE TABLE [dbo].[Customers]( [customerid] [char](5) COLLATE Chinese_PRC_CI_AS NOT NULL, [city] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,PRIMARY KEY CLUSTERED ( [customerid] ASC)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]) ON [PRI原创 2021-11-30 08:55:59 · 573 阅读 · 0 评论 -
Visual Studio的解决方案文件夹
解决方案下新建一个解决方案文件夹NewFolder1NewFolder1下添加文件,工作记录查看window文件夹如下,并没有发现 文件夹NewFolder1和文件工作记录总结:VS添加解决方案文件夹,它只是虚拟的,并不会添加一个文件夹到你的目录中,只是在*.sln中记录解决方案文件夹的信息及文件夹下文件的信息。...原创 2021-10-28 10:59:39 · 1585 阅读 · 0 评论 -
访问网站提示无法安全地连接到此页面
按win+R键打开运行,输入“inetcpl.cpl”,点击确定,如下图所示:一、高级选项页将TLS开头的选项勾选。二安全页,将显示混合内容勾选为启用。重启浏览器访问网站。原创 2021-10-18 14:18:06 · 4866 阅读 · 0 评论 -
API与SDK
概述:SDK的封装是在客户端层面的一个library(也叫做“包”或者“库”),需要引入你自己的项目中调用它提供的函数来实现某些功能。API从网络服务的层面暴露出一些接口,提供给使用这些服务的人去调用。传输数据用的是网络协议(常用HTTP/TCP),数据传输多以json格式,因此跨语言跨平台。SDK的封装是在客户端层面的一个library(也叫做“包”或者“库”),这个library提供一些客户端API接口,类似于已经写好了的函数,你只需要调用它就好了。SDK暴露出来的接口都是和语言相关的,如果SDK转载 2021-10-09 09:30:48 · 600 阅读 · 0 评论 -
软件体系结构介绍(B/S与C/S)
客户/服务器(C/S)客户/服务器(C/S)计算技术在信息产业中占有重要的地位。**结构为客户端/数据库服务器。**网络计算经历了从基于宿主机的计算模型到客户/服务器计算模型的演变。在集中式计算技术时代,广泛使用的是大型机/小型机计算模型。它是通过一台物理上与宿主机相连接的非智能终端来实现宿主机上的应用程序。在多用户环境中,宿主机应用程序即负责与用户的交互,又负责对数据的管理。宿主机上的应用程序一般也分为与用户交互的前端和管理数据的后端,即数据库管理系统(DBMS)集中式的系统使用户能共享贵重的硬件设备。原创 2021-10-05 16:33:26 · 5360 阅读 · 0 评论 -
IIS是怎么处理同时到来的多个请求的
假设有一台服务器,它的IIS上部署有一个Web应用程序-S,可以通过浏览器或其他方式进行访问。假设有A、B、C三台电脑同时访问网站S,IIS接收到3个HTTP请求,然后分别为三个请求各建立一个线程。每个线程都有各自的线程栈,每个用户的数据都放在各自线程栈中,也只有用户线程才能取得对应线程栈中的数据,线程之间不会相互影响。这就是为什么一个网站程序能同时被多个用户访问。用户的线程运行时,会生成很多的引用类型的对象,这些对象都存在托管堆上,托管堆不像栈只能被所属的线程访问,它能被所有线程共同访问,那各个线程怎原创 2021-09-29 15:14:52 · 576 阅读 · 0 评论 -
C#捕捉SQLServer中的异常
C#程序调用SQLServer即使没有trycatch语句,如果发生异常也会被抛出并且在C#代码中捕获。我需要专门捕获SQL服务器超时异常,以便他们可以处理不同。我知道我可以赶上SqlException,然后检查如果消息字符串包含“超时”,但是想知道是否有一个更好的方法做到吗?try{ //some code}catch (SqlException ex){ if (ex.Message.Contains("Timeout")) { //handle原创 2021-09-17 13:30:09 · 802 阅读 · 0 评论 -
计算机中的编码简介
I LOVE YOU 用二进制怎么表示?因为计算机只能处理二进制也就是数字,所以文本类的内容需要转换为数值然后用二进制表示,ASCII编码应运而生。例如:I 对应十进制73,二进制为0100 1001。1.ASCII编码因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所 以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以原创 2021-09-10 09:19:45 · 1374 阅读 · 0 评论 -
.NET CORE 为什么可以跨平台运行?
APS.NET CORE自身内置了主机服务器(kestrel),不需要依赖IIS,就可以自己运行代码,所以.NET CORE可以跨平台运行。SpringBoot的jar包也是同样的道理,都内置了Tomcat或其他服务器。原创 2021-08-10 17:10:52 · 733 阅读 · 0 评论 -
.NET CORE发布到IIS简单操作
一.安装IIS二.安装相应版本的.NETCORE SDK,Hosting Bundle,.NET Runtime 2.1.28三.发布完成后添加网站,应用程序池改为无托管模式。原创 2021-06-10 23:02:04 · 208 阅读 · 0 评论 -
RabbitMQ原理与相关操作(二)
RabbitMQ是一个在AMQP(高级消息队列协议)标准基础上完整的,可服用的企业消息系统。AMQP模型的功能组件图(上图摘自 Sophia_tj 的 第2章 AMQP模型)AMQP的四个总要概念:1、虚拟主机(virtual host)或(vhost)2、交换机(exchange)3、队列(queue)4、绑定器(bind)什么是虚拟主机?一组交换机、队列和绑定器 被称为 虚拟主机(vhost)。为什么要用虚拟主机?RabbitMQ server 可以说就是一个消息队列服务器实体(Brok转载 2021-04-25 16:16:54 · 183 阅读 · 0 评论 -
RabbitMQ原理与相关操作(一)
MQ概述消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行–它们不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。MQ主要作用是接受和转发消息。你可以想想在生活中的一种场景:当你把信件的投进邮筒,邮递员肯定最终会将信件送给收件人。我们可以把MQ比作 邮局和邮递员。MQ和邮局的主要区别是,它不处理消息,但是,它会接受数据、存储消息数据、转发消息。RabbitMQ术语消息只能存储在队列转载 2021-04-25 16:14:48 · 156 阅读 · 0 评论 -
windows下 安装 rabbitMQ 及操作常用命令
1.安装Erlang所以在安装rabbitMQ之前,需要先安装Erlang 。小编使用的是otp_win64_18.1 ,需要其他版本或者32位系统的,可以去官网下载。全部点击“下一步”就行。有的选择其他的安装方式,可能需要添加一下系统环境变量(正常安装的也要检查下):有最好,没有的话就手动添加嘛。2.安装RabbitMQ下载运行rabbitmq-server-3.6.5 ,需要其他版本或者32位系统的,可以去官网下载。依旧可以不改变默认进行安装。需要注意:默认安装的RabbitMQ 监听转载 2021-04-25 16:05:21 · 444 阅读 · 0 评论 -
ASP.NET Core使用Redis
首先安装Redis,略。项目NuGet包安装:StackExchange.Redis;appsetting.json配置redis信息://Redis配置信息 "Redis": { "Default": { "Connection": "127.0.0.1:6379", "InstanceName": "local", "DefaultDB": 8 } }RedisHelper类 public class RedisHelper :原创 2021-04-22 11:51:14 · 635 阅读 · 0 评论 -
.NetCore Datatable快速转换为List集合
List<A> list = new List<A>(); DataTable dt = this.ExecuteDataTable(cmdText,cmdParms); string jsonStr = JsonConvert.SerializeObject(dt); list = JsonConvert.DeserializeObject<List<A>>(jsonStr);原创 2021-03-18 09:15:13 · 796 阅读 · 0 评论 -
通过类的完全限定名获取属性名、属性值、DisplayName信息
实体类:public class Student { /// <summary> /// 学号 /// </summary> [DisplayName("学号")] public string ID { get; set; } = "002"; /// <summary> /// 姓名 /// </summary> [DisplayName("姓名")] public str原创 2021-03-12 11:22:36 · 559 阅读 · 0 评论 -
FastReport同一数据源分两列展示
右键数据区,编辑列属性设置为2 就会显示两列了,不过列中间会有间隙原创 2020-09-30 11:20:58 · 1534 阅读 · 0 评论 -
ASP.NET CORE开启后台任务
通过Microsoft.Extensions.Hosting.BackgroundService抽象类开启后台任务。/// Copyright(c) .NET Foundation.Licensed under the Apache License, Version 2.0. /// <summary> /// Base class for implementing a long running <see cref="IHostedService"/>. /原创 2020-09-28 10:08:02 · 348 阅读 · 0 评论 -
.Net Core生成二维码
需要安装NuGet包ThoughtWorks.QRCode public void GetQrCodeWithText(string fileName, string content) { try { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE原创 2020-07-30 15:37:02 · 456 阅读 · 0 评论 -
利用TagHelper生成自定义标签
/// <summary>/// 文本域标签/// </summary>[HtmlTargetElement("layuiTextareaTag", TagStructure = TagStructure.WithoutEndTag)]public class LayuiTextareaTag:TagHelper{ #region 标签属性 private const string TextAttribute = "text"; private co原创 2020-07-30 15:28:45 · 300 阅读 · 0 评论 -
c#用JObject解析Json
1、下载库:http://json.codeplex.com/2、添加相应库到项目中。参考:vs2013中c#引用第三方库3、添加引用:using Newtonsoft.Json.Linq;4、相关方法:(1)遍历Json对象JObject _jObject = JObject.Parse("{‘ID’:‘001’,‘Name’:‘test’,‘Mark’:‘Hello Word’}");foreach (JProperty item in _jObject.Children()){str.原创 2020-07-17 14:11:21 · 1050 阅读 · 0 评论 -
Fetch error Internal Server Error /swagger/v1/swagger.json错误
Fetch error Internal Server Error /swagger/v1/swagger.json大部分情况:控制器要写[Route(“api/[controller]/[action]”)]action要写[httppost]/[httpget]检查后发现不是上面的问题,而且VS编译不报错,后来发现时其中一个控制器action名字重复,虽然入参不同,调整后OK。...原创 2020-06-22 11:31:04 · 6342 阅读 · 0 评论 -
ASP.NET CORE使用swagger
Swagger兼具了API文档管理和测试的功能,而且保证了代码和文档的一致性。它提供了无需任何实现逻辑的RESTfulAPI的UI表示。它允许用户在没有任何代码访问的情况下了解服务的功能,并减少创建服务文档的时间。首先添加NUGET包Swashbuckle.AspNetCoreConfigureServices中配置中间件 public void ConfigureServices(IServiceCollection services) { services.AddCon原创 2020-06-20 14:44:21 · 440 阅读 · 0 评论 -
Where T:Class,new()的使用
当我们使用泛型的时候,有时候就会提示我们T必须是引用类型而无法进行下去,其实我们学泛型的时候也应该了解到这个T的使用场合,他可以是值类型也可以是引用类型,但是我们某些场合就只能使用引用类型比如EF中的集合,所以我们就需要强制标识这个T只能用于引用类型,这里就用到了Where T :class,这就是标识这个T为引用类型;而new()则表示这个泛型必须有构造函数否则不能使用。...原创 2020-06-20 09:07:09 · 1683 阅读 · 0 评论