Net6绘图组件System.Drawing.Common异常
Net6里使用System.Drawing.Common在linux下出现异常异常内容如下
System.TypeInitializationException : The type initializer for 'Gdip' threw an exception. ---- System.PlatformNotSupportedException : System.Drawing.Common is not supported on non-Windows platforms. See https://aka.ms/systemdrawingnonwindows for more information. Stack Trace: at System.Drawing.SafeNativeMethods.Gdip.GdipCreateBitmapFromFile(String filename, IntPtr& bitmap) /_/src/libraries/System.Drawing.Common ...
NetFramework4.5项目迁移至NetCore5.0
Net Framework4.5迁移至NetCore5.0公司项目需要从Net4.5升级到Net5.0,以便加入NetCore生态(SkyWalking,Docker,Nacos…..)
使用升级助手,可以减轻一点前期的工作
使用 .NET 升级助手将.NET Framework应用迁移到.NET 5 - 张善友 - 博客园 (cnblogs.com)
项目原架构 EF+MVC+Razor+SignalR+WCF
小技术点
Mvc Bundling:聚合静态资源
Session
Cookie
ModelState
升级过程
使用微软助手进行升级(在助手迁移中途可能会出现NuGet包引起的错误,导致迁移中断,需要打开当前的项目,对包进行调整,不支持NetCore的库需要移除)
所有步骤完成后更新NuGet 部分包需要重新下载,因为原始的是Framework的版本,需要下载NetCore版本
修复各种报错…………………….
记录一下遇到的坑
Razor
静态聚合Bundling在NetCore不支持,不支持Scripts.Render,改写为模版的形式
NetCore的Raz ...
固定长度验证码训练识别
训练开源地址https://github.com/kerlomz/captcha_trainer/tree/cnn
训练集与测试集样本可以先做灰度处理,能提高识别率
训练集数据尽量多,注意文件命名规范 值_任意名称.png
测试集文件个数需要大于500个
训练配置config.yaml# Device: [gpu:0, cpu:0] The default device is GPU.# - requirement.txt - GPU: tensorflow-gpu, CPU: tensorflow# - If you use the GPU version, you need to install some additional applications.# TrainRegex and TestRegex: Default matching apple_20181010121212.jpg file.# TrainsPath and TestPath: The local absolute path of your training and testing set.System ...
vscode远程ssh服务器
使用vscode插件Remote ssh 远程ssh服务器进行便捷开发vscode 安装remote ssh插件
生成公私钥用于免密登录cmd执行
ssh-keygen -t rsa -b 4096
输入密钥名称直接回车输入空密码 生成密钥对
服务端设置
上传公钥至服务器 /root/.ssh 目录下公钥是.pub后缀文件
设置sshd文件vim /etc/ssh/sshd_config
重启ssh服务service ssh restart
客户端测试是否可用私钥登录ssh -i 私钥文件路径 -p 端口 用户名@host
客户端设置
打开remotessh配置文件
添加远程服务配置
Host 名称随意设置 HostName 远程的host地址 User 登录用户名 Port 端口 IdentityFile “私钥全路径”示例
Host berttrainserver HostName 8.8.8.8 User root Port 10011 IdentityFile "C:\Users\GUO\.ssh\GUO"
开始连接
选择需要远程的对 ...
创建ca证书
创建sh文件内容如下
#!/bin/bash -e# * 为必改项# * 更换为你自己的域名CN='' # 例如: demo.rancher.com# 扩展信任IP或域名## 一般ssl证书只信任域名的访问请求,有时候需要使用ip去访问server,那么需要给ssl证书添加扩展IP,## 多个IP用逗号隔开。如果想多个域名访问,则添加扩展域名(SSL_DNS),多个SSL_DNS用逗号隔开SSL_IP='' # 例如: 1.2.3.4SSL_DNS='' # 例如: demo.rancher.com# 国家名(2个字母的代号)C=CN# 证书加密位数SSL_SIZE=2048# 证书有效期DATE=${DATE:-3650}# 配置文件SSL_CONFIG='openssl.cnf'if [[ -z $SILENT ]]; thenecho "----------------------------"echo "| SSL Cert Generator |& ...
部署docker私有仓库harbor
系统要求ubuntu 16.04及其以上centos 7.0 及其以上suse 13及其以上
官网 https://goharbor.io/
安装 以下已ubuntu为例安装dockerapt install docker.io
安装docker-composecurl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose
https://github.com/docker/compose/releases
下载镜像https://github.com/goharbor/harbor/releases解压
tar -xvf harbor-offline-installer-v1.2.2.tgz
修改 harbor.yml这里的hostname 一定要是用户端能访问到的 否则docker login会失 ...
netcore集成consul配置中心
引用nuget包winton.extensions.configuration.consul
配置控制台程序 var configbuild = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: true);string consuleurl="http://127.0.0.1:8500"; var cancellationTokenSource = new CancellationTokenSource(); configbuild.AddConsul($"{PlatformServices.Default.Application.ApplicationName}/appsettings.json", ...
consul集群与多数据中心
集群下载consul包https://www.consul.io/downloads.html测试consul版本1.5.3
创建配置文件自定义端口-可用于单机测试 生产环境不建议修改端口 集群开3-5个
配置1{ "datacenter": "us-east-1", //数据中心名称 同一集群名称需相同 "data_dir": "./data1/", "node_name": "dc1",//节点名称 相同集群名称不能冲突 "bootstrap_expect": 2, "bind_addr": "0.0.0.0", "retry_join":["127.0.0.1:9301"],//启动自动加入节点 "retry_interval": "10s", "retry_max": 0, &q ...
spring-boot-admin结合consul实现动态client监控
目的:使用springboot-admin作为监控端监控springboot节点 将springboot-admin-server注册到consul 客户端自动发现 自动注册创建springboot-admin-server服务pom
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <p ...
spring-cloud使用consul作为配置中心和注册中心
注意事项
启动类上需要设置@EnableScheduling注解 配置才能自动刷新
启动类上需要设置@EnableConfigurationProperties({StudentConfig.class})
model类上设置@ConfigurationProperties(prefix = “student”) //前缀:对应consul 配置中心的 student 前缀
通过@Value注入的属性,修改consul的配置后,属性不能立即生效,需要服务重启。而通过@ConfigurationProperties注入的属性,修改consul的配置后,属性会立即生效,所以建议如果需要动态生效的配置,最好使用@ConfigurationProperties进行属性的注入。
consul可以作为配置中心和注册中心pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x ...