为.Net Core 3.1 WebAPI 新增gRPC支持
这里简单记录下如何为.NetCore3.1的WebAPI项目新增gRPC支持,.Net 5 6 7大体上也差不多是这个思路,应该比3.1要简单一些,就不多赘述了,有需要可以参照本文问问gpt就足以了。 首先nuget引用包 Grpc.AspNetCore ,注意如果是3.1版本需要2.56版本的,2.57开始仅支持.net 6 7 8版本,而.Net Core 2.1是不能使用gRPC的,因为2.…
这里简单记录下如何为.NetCore3.1的WebAPI项目新增gRPC支持,.Net 5 6 7大体上也差不多是这个思路,应该比3.1要简单一些,就不多赘述了,有需要可以参照本文问问gpt就足以了。 首先nuget引用包 Grpc.AspNetCore ,注意如果是3.1版本需要2.56版本的,2.57开始仅支持.net 6 7 8版本,而.Net Core 2.1是不能使用gRPC的,因为2.…
偶尔会发生Windows下Docker启动时卡在Starting the Docker Engine...的情况,vscode进行wsl开发时也会发生这种情况,经过调查后,发现跟一个叫做LxssManager的进程有关,废话不多说,直接写解决方案。 #停止LxssManager服务 net stop LxssManager #启动LxssManager服务 net start LxssManage…
线上环境为了防止上下游扯皮,是有必要把接口的输入输出打印到日志中的,这样出了问题能够快速定位问题,没出问题也能直接把日志糊在对面脸上抓紧时间下班。 之前在.Net FrameWork的实现其实挺简单的,就是Global.aspx里的生命周期函数里写上就可以了,但是转到core之后,想当然的使用Filter来实现,遇到了不少问题,比如使用ActionFilter时,触发过滤器的时候,RequestB…
Http请求是web服务经常使用的东西,.NetCore主流使用的类库是WebClient,但是有时候经常要写一个post请求的时候,提笔忘字,防止以后忘了又得找一遍,这里直接记录一下简单的使用方法。 首先是Get请求,主要需要注意的是Encoding需要设置。 然后就是POST请求,发送一个对象作为body: 这里一定记得要设置ContentType和Encoding,不然接口会报错,因为协议不…
因为一个统计业务的需求,需要将业务数据和系统日志分为两个文件进行记录,记录之后由日志收集系统收集到不同的ES的索引内,这里记录一下多Logger的配置方式。 首先必不可少的是,先安装Serilog.Expressions这个nuget包,网上查了很多资料鲜有提到需要安装这个包,导致踩了一个很深的坑,原因是更多的程序员喜欢使用代码内配置Serilog,而不是使用appsettings.json进行配…
最近在学习golang,对指针方面的一些概念有些迷惑,下了些功夫把相关的知识学习了一下,这里做个总结。 主要还是关于值传递和引用传递方面的东西,基本可以分为4种,只论结果,其他的网上已经说烂了。 值类型值传递 无论是golang、java、c#,值类型在作为参数传递时,都是深拷贝直接传递值的,因为值类型的内存分配在栈中,内存地址直接保存了值类型的真实值,在作为参数传递的时候,直接拷贝其值,所以在方…
.NetCore应用部署至K8S,实际上就四个问题需要解决: 日志等文件的持久化 配置appsettings.json 服务的健康检查 编写项目的yaml和dockerfile 我们一步一步来。 日志等文件的持久化 你的项目可能内含一些程序运行期间生成的文件,比如日志或用户上传的文件等,你肯定不想让其随容器的销毁而丢失,那么就要解决应用在k8s内的文件持久化问题。 这个问题的解决方法非常简单,就是…
业务代码敲多了免不了CtrlCV,每次开新项目的时候脚手架搭起来费时费力,经常要翻看老项目复制来复制去,那么有没有可能自己造一个类似自带的WebApi模板那样的脚手架来快速生成项目呢?答案是有的,我们可以通过dotnet创建项目模板,甚至还可以发布到nuget上供身边同事使用。 准备自己的项目模板 既然我们要造个项目脚手架模板,那么这个模板肯定要有个原型,我们需要先准备一个能够编译通过的.NetC…