本网站自从3月上线以来已经有8个月时间,期间也有各种bug,也勉强修复了,最初网站运行在.NET 5.0平台上,后来一直关注着.NET 6.0的进展,在微软正式Release的时候立马开始适配新的6.0平台,期间也遇到过各种坑,留有这篇文章仅做记载。 1 安装Visual Studio 2022 因为Visual Studio 2019不再支持NET 6.0 SDK,如果想继续在VS平台下开发,必须升级到Visual Studio 2022,对于个人来说我们选择Community版本就可以了,安装完成后选择用最新的VS2022打开你的项目。 2 升级NuGet Package到最新版本 由于我是等到.NET 6.0正式版出来的时候升级的,大部分的第三方包(Package)已经适配了.NET 6.0,可以直接升级,但仍然建议各位查阅项目官方的文档,特别是breaking changes以及用 …

.NET Core多语言本地化支持可以让所开发的应用更加国际化,但是不同操作系统平台之间可能会遇到一些特有的部署问题,本文将介绍我在Linux环境下部署国际化应用过程中遇到的zh-CN中文资源丢失问题的解决方案,当然可能有其他更好的方案,这里不做推荐,本文操作使用的软件环境是Debian 11、ASP.NET 5.0、nginx,仅供参考。 1 多语言国际化应用的建立 .NET Core本地化方式参考《Globalization and localization in ASP.NET Core》,通常情况下,在Startup.cs的ConfigureServices部分会包含如下代码: services.AddLocalization(options => options.ResourcesPath = "Resources"); services.AddMvc() . …

Docker默认是不开启IPv6支持的,但是我们某些业务往往又需要IPv6的支持,特别是IPv6普及大势所趋,本文主要介绍的是如何开启Docker桥接网络IPv6支持,这篇文章具体操作仅供参考,建议以官方文档为准。 本文最重要的先决条件是主机商已经分配给你一个公网IPv6地址段,我们可以通过查看主机控制面板中信息、询问主机供应商或者直接SSH登录主机使用命令ip -f inet6 addr show eth0获取。命令方式获取的ipv6地址输出如下: 6: eth0: mtu 9000 inet6 2607:f0d0:1002:51::4/64 scope global valid_lft forever preferred_lft forever inet6 fe80::230:48ff:fe33:bc33/64 scope link …

维护的一台服务器近期做了异地备份,具体的做法实际上也很简单,通过任务计划每日午夜将数据库备份文件压缩,再通过群晖的Cloud Station Backup回传至异地群晖NAS中,当然群晖NAS做了多盘RAID,这样数据也多了一层保护,本来数据库备份这里也考虑看能否使用第三方软件,结果在搜索时找到了微软官方的解决方案《Schedule and automate backups of SQL Server databases in SQL Server Express》,简单易用,比较nice~ 这里再简单记录一下,作为一个备忘,以下操作仅供参考,建议大家先测试确保无误后再运用在生产服务器上,本人不对下面操作带来的可能数据损坏等问题负责,敬请理解。 1 备份数据库 1.1 安装必须的软件 这个是先决条件,一般服务器上可能缺少这些软件,如果不安装将无法使用下面的命令,当然你也可以使用替代命令,这 …

记得很久之前就尝试使用废弃的银行U盾存储加密用的数字证书,也考虑过购买空白USB Key或者智能卡,直到有一天看到了YubiKey这个小玩意儿,彻底被种了草,由于国内购买不便,淘宝上价格虚高也不放心,一直等到亚马逊支持了海外直邮,立马入手,如果说仅将YubiKey用来存储数字证书,那么没有完全发挥出其在个人信息安全保护上的威力。比如就现在的YubiKey而言,在我的个人信息安全保护体系中主要承担了重要信息资产两步认证、SSH证书登录、GnuPG签名与加密、常用密码数据库KeePass保护等等,预计今后将会通过YubiKey逐步替代掉所有不安全的认证方式。 今天主要介绍的是YubiKey配置SSH登录备忘,配置内容仅供参考,实际上SSH最早是在采用YubiKey 4的时候就已经配置了,当时仅有一把YubiKey,串在钥匙扣上,配置GnuPG的时候顺带支持了SSH登录,当然主要是依赖于 …

大多数情况下我们开发的应用可能需要与其他服务进行交互,比如数据库服务、第三方服务等等,出于安全考虑,这些服务的交互都需要发起端提供认证凭据,这里可能是账号密码、API Key等,这里就涉及到认证凭据的保管问题,很长一段时间我们都是将认证凭据写死到配置文件中,这样做一开始是简单可行,但是随后你就会发现带来了一系列的问题:首先你的所有开发环境和生产环境都需要配置成一样的,比如生产环境数据库账号和密码和开发环境数据库账号和密码最好是一致的,否则部署到生产环境则需要手动修改这个认证凭据,当然你也可以通过配置分离或者环境变量控制来避免这个问题;其次是代码仓库提交,尤其是开源项目,至今GitHub公共库仍然存在大量配置文件明文保管着敏感凭据;最后分布式开发或者交付麻烦,需要团队合作或者直接提供给终端用户的项目,团队成员或者终端用户需要修改为本地环境凭据。 1 .NET Core与secrets. …

时光荏苒,也不知从什么时候开始,很多感慨时间的文章都喜欢以此作为开头,依稀记得的是这个词汇应该是学生时代课文中学会的,原谅我词汇的匮乏,但是时间真的过的很快,转眼独立个人建站也有近16个年头了,这16年也见证了互联网时代的发展,从刚开始学生党疯狂的申请各种免费域名和主页空间,然后挂上几个静态页面而沾沾自喜,到正儿八经的跑银行汇款注册了人生第一个域名,认认真真的边看书边用ASP搭建了第一个真正个人网站,再后来转学PHP并使用成熟的WordPress建立了博客,至此我开始了内容创建为主的博客历史,截止WordPress博客停用大概也有三百多篇文章了,其中部分文章也得到了网友们中肯的评价。 常常怀念过去的时光,有人说当你开始怀念的时候说明你已经老了,确实人总是对于失去的东西念念不忘往往又不能珍惜拥有的,回顾过往,尤其是那段无忧无虑的学生时代,那种可以泡图书馆,混迹各大技术论坛、通宵写代码,约同学 …


2021年以前发表的部分文章已经被存档到,这些文章将不再进行更新维护。