自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 ASP.NET MVC 4升级迁移到ASP.NET MVC 5

9. 如果有一些方法报错,就重启一下项目再看。(我这加载后碰到一个问题,View中原来写的@Html.Partial报错,说没有Partial方法,就很奇怪了,后来捣鼓半天,同事说重启一下项目吧,果真就好了。7. 找到 {E3E379DF-F4C6-4180-9B81-6769533ABE47},如果包含,就去掉这个;背景:今天针对一个老项目进行框架升级,老项目使用的是MVC 4,现在要升级到MVC5。6. 右键项目,卸载项目,然后编辑项目文件(.csproj)右键项目,重新加载项目。

2024-05-08 16:54:45 508 1

原创 原生JS通过XMLHttpRequest请求文件流下载文件时获取文件名称

XMLHttpRequest请求文件流获取文件名称

2024-04-12 17:49:32 663

原创 .Net 6 WebApi 路由统一添加路由前缀

.Net 6 WebApi 路由统一添加路由前缀:在实际API使用时,会存在对API进行管理维护,同时,api的路由地址可能会进行分组辨认(例如前缀统一加api或者业务名称);如果对每一个控制器进行路由特性标识比较麻烦且费时间,不容易维护。4.这样所有控制器中的action路由前边都会加一个apiv2。2. 添加自定义路由扩展静态类。

2023-01-28 15:11:01 1411 2

原创 .Net 5在CentOS 7部署问题Couldn’t find a valid ICU package installed on the system

.Net 5在CentOS 7部署问题

2022-08-23 16:20:47 990

原创 .net core 访问不常见的静态文件类型(MIME 类型)

.net core网站中访问后缀为properties的文件或者不常见的文件类型

2022-07-05 14:16:27 667

原创 .net 5 FluentFTP连接FTP失败问题:This operation is only allowed using a successfully authenticated context

FluentFTP连接:This operation is only allowed using a successfully authenticated context

2022-07-04 11:44:17 949

原创 .Net Core WebAPI 绑定源参数推理、接收http参数写法(SuppressInferBindingSourcesForParameters )

背景:.Net Core WebAPI 控制器中接收参数一般情况下分为简单类型(int、string、double....)、实体类dto、数据集合类型,如下:事实上,http请求可以把请求参数放到query、header、form、body中,而.net core WebAPI中默认启用了推理规则,可以自动推理参数在body、form、还是其他地方特性 绑定源 [FromBody] 请求正文 [FromForm] 请求正文中的表单数据 [FromHeader].

2022-04-20 13:50:58 1230

原创 .Net 5中对于http请求的压缩和解压缩(GZip,Brotli)

背景:(1)经常会有一些接口返回数据大,导致请求缓慢(2)在后台请求一些第三方API时,需要解压缩响应数据,再进行处理解决:可以通过对http请求进行压缩和解压来满足场景需求1.先了解一下几种不同压缩算法,GZip、Deflate、BrotliGzip: Gzip 基于 DEFLATE 算法,它是 LZ77 和霍夫曼编码的组合,最早用于 UNIX 系统的文件压缩。HTTP 协议上的 Gzip 编码是一种用来进 Web 应用程序性能的技术,Web 服务器和客户端(浏览器)必须共同支持 Gz

2022-02-14 11:31:09 3701

原创 .Net5 Log4Net启动一段时间后记录日志到数据库中失败问题

网站启动一段时间后,.Net5 Log4Net启动一段时间后记录日志到数据库中失败问题

2022-01-20 11:49:41 871 1

原创 SuperSocket在.Net5中使用——WebSocket Server篇

背景:SuperSocket支持WebSocket应用层协议,记录一下怎样使用一.首先引用相关Nuget包二、创建WebSocketHostBuildervar host = WebSocketHostBuilder.Create().UseWebSocketMessageHandler( async (session, message) => { await session.Se

2022-01-15 16:54:25 2787 1

原创 SuperSocket在.Net5中使用——AppSession和SuperSocketService篇

背景:我们都知道,在Socket编程中,需要关注和监控Server端和Client端的启动、连接等事件。那在SuperSocket中是怎样去实现呢,本文进行实例介绍,通过重写扩展自定义的AppSession和SuperSocketService概念:在SuperSocket中,一个Session就代表一个客户端的连接,对客户端的管理、连接、监控事件都在AppSession相关方法中去实现;一、编写自定义的AppSession public class MySession : AppSess

2022-01-15 15:53:48 637

原创 SuperSocket在.Net5中使用——Command篇

背景:Command命令单拿出来学习,其实是因为纯看你的使用习惯,你如果不想用内置的这种电文匹配业务处理的逻辑,完全可以自己在UsePackageHandler方法中进行相应的业务处理;或者你的TReceivePackage包类型没有继承IKeyedPackageInfo<T>,这个时候也不用内置Command处理逻辑了。 当然,Command和过滤器的使用还是有很多优点,使你的业务处理代码更加简洁清晰,让你的代码结构更加清晰,可以利用过滤器监听业务处理以及添加一些隔离于业...

2022-01-03 22:33:13 910

原创 SuperSocket在.Net5中使用——启动篇

背景:上文介绍了基本概念,相比于官网来说不全,但也是基本能用到的概念了。本文继续将从启动SuperSocket的角度,继续介绍使用SuperSocket1.两种启动方式(1)通用启动方式,在任何.net5程序中都可以使用 public static async Task Main(string[] args) { var host = SuperSocketHostBuilder.Create<TextPackageInfo, Line..

2021-12-24 16:36:24 1679

原创 SuperSocket在.Net5中使用——概念篇

背景:最近有一个通讯电文的项目,想着在.net core中使用SuperSocket来实现,但是发现使用上还是和在.NetFramework有一些不一样,然后对SuperSocket中一些使用方法也不是很熟悉,借此机会重新学习一下附官网地址:SuperSocket 2.0 DocumentationSuperSocket is a light weight, cross platform and extensible socket server application framework. You ca

2021-12-21 00:00:50 2295

原创 .net 5 Web自定义中间件实现返回默认图片

背景:在地图瓦片的请求过程中,可能存在瓦片遗失的情况,这时候需要在地图上展示默认的瓦片图片,之前在前端相关地图包中去实现,现在在后台实现当请求瓦片失败时,返回默认的瓦片图片,且支持默认图片配置。解决:1.创建.net 5 Web项目2.引入Microsoft.Extensions.Configuration,用于读取appsettings.json3.新建中间件类DefaultImageMiddleware public class DefaultImageMiddleware

2021-11-04 17:28:17 278

原创 .net WebAPI访问授权机制及流程设计(header token+redis)

背景:1.需要在.net5 WebAPI中添加访问授权机制,即实现在登录时颁发用户凭证,后续需要通过凭证访问其他接口,如果凭证不合法,不能正常访问接口;2.网站嵌入到winform客户端中,利用winform可以获取客户端的mac地址的权限,将mac地址作为权限中的一部分,即将mac地址和账号绑定来实现账号只能在指定客户端电脑上使用;3.为了防止在登录后获取token后在其他客户端上使用,利用IP绑定token;实现:首先在登录成功后,将客户端的IP作为加密key,username(登录

2021-10-21 18:48:00 1298

原创 记一次因为Nginx中配置http header问题

问题:在做用户登录中,采用了token+redis的方式实现,前台在请求接口时需要将token放入到http header中。一开始header中存放token的key名称是“token”,这个时候没有问题,后台也能拿到token值;后来新增一种header,key名称叫“admin_token”,这时发现正式环境上后台根本接不到这个header,排查了半天,没有结果。解决:思索半天,想了想测试环境没问题,除去服务器环境问题,差别只在于生产环境上是用Nginx部署转发的网站,问了一下运维,再结合

2021-09-28 17:01:27 445

原创 MySql查询指定一行排序到第一行

需求背景:需要在查询时,指定查询结果中一行为第一行,只是知道这一行中某一列的值。默认排序是这样:那现在就是需要让course_code=1002那一行记录排在查询结果的第一行;实现方案:在order by中指定字段为特定值实现:(两种写法都可以)原理是,order by时候,course_code=1002布尔计算就为值1,其他为0,就可以排序了;拓展:如果指定多行的话(指定多个数值)...

2021-09-07 14:57:10 1825

原创 .net5 WebAPI中搭建WebSocket服务端

背景:需要开发一个WebSocket服务端,用来向h5客户端推送消息;以前的做法是直接做一个windows服务,专门开一个端口来进行WebSocket连接,现在可以在.net5 WebAPI中直接支持WebSocket,且不用单开端口使用步骤:1.在Startup.cs的Configure中启用WebSocket中间件app.UseWebSockets();2.在控制器中添加Action,来接收WebSocket客户端的连接和处理接收、发送消息,关闭连接; [HttpG.

2021-08-26 10:19:39 2891 6

原创 Winform让Form窗体切换前置及活动状态

需求背景:程序中打开了多个Form窗体,需要动态切换Form窗体的活动状态,并让活动窗体置于最前边;解决:Form form1=new Form();form1.TopMost=true;form1.TopMost=false;//放到最前边窗体,且不锁定完美解决;...

2021-08-18 18:00:38 913

原创 .Net5中使用Swagger

背景:Swagger的好处真是很多,可以作为前后端的沟通桥梁,也可以作为调试接口的入口,方便快捷,提升开发效率,下边将记录一下在.NetCore中使用Swagger1.

2021-06-04 18:10:48 2412 1

原创 .NetCore设置API post方式可以直接括号内接受参数

众所周知,在.NetCore WebApi中,Post方式的api接收参数时不能像Get那些,直接把接受参数写到方法后边括号内,如:[HttpPost] public string GetAreaGroupList(string id){}

2021-06-04 17:41:15 1343

原创 CefSharp存储Cookie和读Cookie

背景:需要在Winform客户端程序中存储Cookie,并可以取出来:1.存储Cookie var cookieManager = CefSharp.Cef.GetGlobalCookieManager(); cookieManager.SetCookie(CommonUtils.Config["System:WebUrl"], new CefSharp.Cookie {

2021-06-03 16:22:00 2362

原创 .net core CefSharp ChromiumWebBrowser中网站JS调用winfrom程序中C#方法

背景:winform+CefSharp来打开浏览器网站开发,前后端分离,后端webapi,需要在网站中获取登录的时候向API提交客户端mac地址;解决:网站登录时调用winform中方法,方法进而在获取客户端mac地址后再请求webapi;以下展示怎样实现在js中调用后台方法:后台在初始化cef时://注册JS可以调用的类,调用后,js中初始化“ CefSharp.BindObjectAsync('googleBrower');”后,就可以直接调用注册方法了“googleBrower.post

2021-04-28 15:59:08 1728

原创 log4net在.Net Core使用

log4net的使用,主要是了解各种输出方式的配置文件怎样配置:1.安装log4net包如果需要输出到数据库,相应的引入包2..net Core中注册

2021-04-11 20:01:26 1764

原创 Quartz.net在.Net Core中使用

近来使用Quartz.net来实现定时作业调度,现记录一下使用流程。关于Quartz的介绍和详细说明,请访问官网https://www.quartz-scheduler.net/一、Quartz.net中主要有以下几个对象1.StdSchedulerFactory(调度器工厂)用于创建调度2.IScheduler (调度器)用于绑定任务和触发器进行工作3.IJobDetail(任务)用于执行业务工作4.ITrigger(触发器)用于指定在特定条件下执行任务二、安装Quartz.A

2021-04-09 16:49:38 1776 3

原创 前端布局实战(px、rem、vw)

最近做了几个大屏页面,深深得被产品经理和客户折磨了一顿。因为客户挤牙膏式的需求和项目管理问题,导致这几个页面来来回回改了好几版!记录一下改版过程,也是第一次去深入考虑分辨率自适应的问题。一开始美工设计的稿子是按1920*1080的分辨率设计的,客户那也说最终是要放在这样分辨率的大屏上观看的。负责切图的小姐姐说推荐用rem布局页面,这样适配性好,所以切出的页面布局是rem布局,并针对常用分辨率做了几种@mediade font-size;然后我就负责往页面上填充内容和效果了。做好了让客户去看,

2021-04-01 15:41:10 404 1

原创 .net 后台上传图片不用保存图片实现压缩图片

之前在后天压缩图片都是先保存图片到服务器,再对这个图片进行压缩;现在可以通过文件流的方式避免预先保存图片的方式,记录一下具体代码var file= Request.Form.Files[0];Image image = System.Drawing.Image.FromStream(file.OpenReadStream());Bitmap bmpCut = new Bitmap(512, 377, PixelFormat.Format24bppRgb);Graphics g = Graph

2021-03-18 14:50:14 447

原创 js复制粘贴,clipboard.js

背景:在一个后台系统中需要一键复制文章链接(如下图),需要自动复制链接给用户用,用了原生jsdocument.ExecCommand("copy"),发现基本浏览器都不兼容.解决:遂找第三方js,于是看到了clipboard;官网:https://clipboardjs.com/官网上好几种用法,配合页面元素。但是都不是我要用的。我的需求是,点击按钮,复制表格内行内某个字段。于是我在点击时,虚拟添加一个button,然后绑定clipboard事件,自动触发点击事件,完成复制后移除刚添加的b.

2020-05-29 22:49:37 231

原创 .net 用supersocket搭建socket server

背景:.NET新项目想用supersocket来代替之前的socket来搭建服务端,一个原因是早听说这个框架开源、可用性挺高,一个原因是之前写的服务总是在内存、可读性上有问题,借此来使用并学习。现在先记录一下简单使用过程。supersocket官网:https://docs.supersocket.net/ github地址:https://github.com/kerryjiang/...

2020-04-01 15:02:33 1302

原创 C#开发OPC客户端

背景:做一个系统要对接OPC,所以要学习一下OPC客户端的开发。解决:OPC实际上是为了给工业控制系统应用程序之间提供一种接口规范。作为使用最多的对接技术,OPC具有它的优势,硬件供应商只需提供符合OPC标准的server,安装到windows服务器上,软件提供商编写OPC的客户端,只需对接业务中OPC项对应的数据项即可完成对接。C#开发OPC客户端,采用的是自动化接口(即OPCDAAut...

2020-03-01 16:16:08 3189

原创 sqlserver可用空间过大,回收未用空间

背景:阿里云RDS sqlserver2008数据库,因为错误操作,导致一个表插入大量数据,导致表内存,数据库内存超限,并产生自动锁。解决:1.查明原因后,赶紧停止错误操作,因为这个表数据意义不大,所以直接使用trancate语句直接清除该表数据2.清除后,自动锁解除。但是存储空间还是没下去3.产生疑问,到底是什么占用存储空间?4.查看数据库大小:use [$DB]go...

2019-11-28 10:05:34 2790 1

原创 无法登录远程MySQL服务器 1045错误

背景:阿里云服务器上安装的mysql需要本地访问。服务器安全组端口也放出来了,还是连接不上。报错:1045 (28000):Access denied for user 'root'@'localhost' (using password: YES),拒绝登录,看来还是权限不够。解决:看了一下mysql root用户权限是这样:也有一个root用户host是%,但是还是不行。不...

2019-11-05 14:31:31 486

原创 .net HttpWebRequest获取请求返回cookie以及请求时携带cookie

背景:对接第三方接口,需要从登陆接口中获取cookie,在后续接口请求中使用。过程:本来是应该前台直接对接接口的,可是前台反馈获取不到第三方接口完整cookie,所以只能后台来搞一下了。解决:使用HttpWebRequest进行get请求。1.获取cookie:public static string SendRequest(string url, Encoding enco...

2019-07-31 18:22:35 6874 2

原创 layui table工具栏选择性展示操作元素

背景:layui表格渲染时要根据判断记录中一个或多个字段,在工具操作栏中展示不同的操作按钮或者元素。解决:需要用到layui中的一个语法。具体见下:<script type="text/html" id="toolBar"> {{# if(d.device_type=='2'){ }} <div id="{{d.way_id}}" address="{{...

2019-07-06 17:12:48 2207 1

原创 调用mysql存储过程报错:mysql 1449 : The user specified as a definer ('root'@'%') does not exist

背景:我在本地mysql数据库建了一个存储过程,并在程序中调用。等到部署到服务器上时,发现调用存储过程失败,查看报错,发现这个错误。解决:经查看是因为root管理员对该存储过程没有权限调用,那么就需要给root授权了。这里就把mysql所有权限重新授权给root管理员。以下是授权命令过程。1.cmd进入mysql命令行。(cd打开mysql安装bin文件夹)2.进行登录。...

2019-06-27 11:13:01 623

原创 .net socket.io客户端使用过程

背景:最近做了一个项目,需要对接第三方接口,需要使用.net socket.io作为客户端来收发指令。虽说socket.io并不难,但是使用过程中还是遇到一些问题,特此记录一下。先看socket.io介绍:Socket.io是一个WebSocket库,包括了客户端的js和服务器端的nodejs,它的目标是构建可以在不同浏览器和移动设备上使用的实时应用。它会自动根据浏览器从WebSocket、A...

2019-06-25 17:44:06 4271 2

原创 MySql根据起始结束日期获取每一天的集合

背景:mysql中想根据两个日期获取范围内的每一天,作为一个结果集返回。mysql不像sqlserver拥有数字辅助表spt_values(我是没找到...),这样只能自己建一个表来实现了。sql语句:select @num:=@num+1,date_format(adddate(@beginDate, INTERVAL @num DAY),'%Y-%m-%d') as date fro...

2019-06-25 16:51:05 2403 2

原创 SqlServer判断表中某列是否包含中文,英文,纯数字

背景:需要在数据库中批量更新一批数据,条件是某列包含中文字符。sql语句:select * from table1 where 列名 like '%[吖-座]%'拓展:1.字段包含英文字符select * from table1 where 列名 like '%[a-z]%'2.字段包含纯数字select * from table1 where 列名 like '%[0-...

2019-04-08 10:12:52 5172

原创 ASP.NET之WEBAPI和webservice返回json数据

背景:webapi和webservice想返回json格式的数据,供前台直接使用。返回数据样式:WEBAPI:接口返回类型为HttpResponseMessagepublic HttpResponseMessage ReturnJson(string content) { HttpResponseMessage result = n...

2018-11-08 09:11:57 2880

C#邮箱验证注册账号有效性

此DEMO为C#的通过发送邮件来激活注册用户

2017-05-22

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除