- 博客(97)
- 资源 (6)
- 收藏
- 关注

原创 Ubuntu+Nginx+Supervisord部署.net core web应用程序
1、服务器:Ubuntu Server 24.04 LTS 64bit2、反向代理服务器:Nginx3、进程守护:Supervisord4、应用程序:.Net8 的Web应用程序。
2024-12-10 07:00:00
1274
原创 Ubuntu 24服务器部署abp vnext应用程序的完整教程
1、安装Nginx2、安装.NetCore SDK 或.NetCore 运行时以上两步参考。
2025-05-11 19:40:32
1082
原创 正式部署abp vnext应用程序时,如何生成openiddict.pfx证书文件
如果您在IIS上部署应用程序,确保设置应用程序池的高级设置,将“Load User Profile”设置为“True”,以解决可能的“File not found”错误。证书文件,以支持ABP vNext应用程序的OpenIddict模块在生产环境中的加密和签名操作。: 使用OpenSSL生成一个自签名的证书和私钥。在执行此命令时,系统会提示您输入一个密码来保护PFX文件。: 使用以下命令将证书和私钥打包为一个PFX文件。替换为您在生成PFX文件时设置的密码。通过以上步骤,您可以生成并配置。
2025-05-10 20:11:15
314
原创 详解正则表达式中的?:、?= 、 ?! 、?<=、?<!
第一个例子匹配不在"discount-"后面的数字,第二个例子匹配不以"https://"开头的URL。作用: 创建一个分组但不捕获匹配结果,不会将匹配的文本存储到内存中供后续使用。在这个例子中,正向先行断言确保了特定内容存在于匹配之后,但不包含在匹配结果中。第一个例子匹配不以数字结尾的单词,第二个例子匹配后面不跟"元"的数字。第一个例子匹配前面有货币符号的数字,第二个例子匹配div标签内的内容。作用: 匹配后面跟着特定模式的位置,但不消耗这些字符(零宽度断言)。作用: 匹配后面不跟着特定模式的位置。
2025-04-12 21:59:53
422
原创 abp vnext框架自定义扩展volo.abp.openiddict的登录验证
在 ABP vNext 框架下,可以通过扩展 OpenIddict 的 ITokenExtensionGrant 接口来自定义登录验证逻辑
2025-03-26 16:34:03
565
原创 abp vnext框架重写volo.abp.openiddict的tokenController登录验证
在 ABP vNext 框架下,可以通过继承 TokenController 并重写 HandleAsync 方法来自定义 OpenIddict 的登录验证逻辑.
2025-03-26 16:30:52
450
原创 使用Let‘s Encrypt申请免费HTTPS证书
Let’s Encrypt是一个由Internet Security Research Group (ISRG)运营的开源证书颁发机构(CA)。它提供免费的SSL/TLS证书,并通过自动化工具Certbot简化了证书的获取和更新过程。Let’s Encrypt的证书有效期为90天,但可以通过设置自动更新来确保证书始终有效。
2025-02-14 07:00:00
611
原创 服务器模式部署mediacms后卸载mediacms,包括数据库
确保没有其他应用程序依赖于已卸载的数据库,如果有,需要更新其配置。:在卸载之前,建议备份数据库和相关配置文件,以便在需要时可以恢复。:删除PostgreSQL的数据目录和配置文件,通常在。),查找并删除与PostgreSQL相关的注册表项。:找到MediaCMS的安装目录,通常在。:检查是否有额外的配置文件,如。删除残留的文件夹,如。
2025-02-13 09:36:51
498
原创 Linux系统卸载nginx
在Linux系统中卸载Nginx,可以通过包管理器完成,具体步骤取决于你使用的Linux发行版。以下是基于Debian/Ubuntu和基于Red Hat的系统(如CentOS、Fedora)的卸载方法。
2025-02-13 08:52:34
1062
原创 ubuntu服务器部署mediacms之后,忘记密码的解决办法
如果你使用的是不同版本的Django,密码哈希算法可能会有所不同,请确保使用正确的哈希值。:在修改数据库之前,建议备份数据库,以防操作失误导致数据丢失。是Django生成的哈希密码。你可以通过Django的。方法生成一个哈希密码,或者使用在线工具生成。: 假设你的MediaCMS数据库名为。:确保新密码足够复杂,以防止被破解。
2025-02-08 17:53:41
604
原创 Abp vnext + OpenIddict的授权械与适应场景
如果你有特殊的授权需求,可以自定义扩展模式。例如,你可以实现一个自定义的授权类型,如微信扫码登录。适用场景适用于需要集成第三方登录或自定义授权逻辑的应用。配置示例// 业务逻辑})});
2025-01-15 10:51:41
904
原创 Nginx设置开机启动并使用Supervisor管理Nginx进程
要让Nginx在开机时自动启动,并且使用Supervisor来管理Nginx进程,你需要完成以下步骤:首先确保你的系统中已经安装了Nginx。如果还没有安装,可以通过以下命令安装:2. 配置Nginx开机启动Nginx默认情况下是配置为开机启动的。你可以通过以下命令检查Nginx的服务状态:如果Nginx没有设置为开机启动,可以使用以下命令来启用:3. 安装Supervisor如果系统中还没有安装Supervisor,可以通过以下命令安装:4. 配置Supervisor管理N
2024-12-26 09:11:12
372
原创 ubuntu停止.netcore正在运行程序的方法
是一个跨平台的工具,可以发送SIGINT(Ctrl+C)信号给进程,以优雅地停止.NET Core应用程序。请根据你的具体情况选择适合的方法来停止.NET Core程序。如果你的程序是以服务的形式运行的,你可能需要使用。: 如果你知道.NET Core程序的进程ID(PID),你可以直接使用。这个命令会发送SIGTERM信号给所有匹配的进程,允许它们优雅地关闭。: 如果你想要停止所有与.NET Core相关的进程,可以使用。表示发送SIGKILL信号,这是一个强制停止进程的信号。
2024-12-25 16:51:06
778
原创 NGINX不支持HTTP请求头中包含下划线(_)的解决办法
以上两种方法可以解决NGINX作为反向代理时不支持HTTP请求头中包含下划线的问题。建议首先尝试修改NGINX配置以允许下划线,如果因为某些原因无法修改配置,再考虑改变请求头的命名方式。: 另一种解决方案是在发送请求时避免使用包含下划线的请求头名称。可以改用驼峰命名法或其他符号(如减号。这将允许NGINX识别和转发包含下划线的HTTP请求头。这样配置后,NGINX将能够处理包含下划线的请求头,如。: 在NGINX的配置文件中,找到。
2024-12-25 07:00:00
490
原创 ABP vNext框架之EntityVersion
在ABP vNext框架中,EntityVersion字段主要用于实现乐观并发控制,确保在多个用户同时更新同一条记录时,能够检测到版本冲突,从而保持数据的一致性。通过以上步骤和代码示例,可以在ABP vNext框架中实现乐观并发控制,确保数据的一致性。:在更新操作中捕获并发冲突异常,并提示用户重新加载数据。),确保数据库能够检测到版本冲突。值,并提示用户重新加载数据。:确保数据库表中包含。字段,用于版本控制。
2024-12-24 15:46:22
325
原创 Python 基础知识详解:序列、列表、元组、字典与集合
列表list): 可变序列,元素可重复,有序,使用[]。元组tuple): 不可变序列,元素可重复,有序,使用()。字典dict): 可变序列,键不可重复,无序,使用。集合set): 可变序列,元素不可重复,无序,使用{}。
2024-12-24 11:06:56
465
原创 Docker环境下MySQL数据库持久化部署全攻略
在当今的软件开发领域,Docker容器技术已经成为应用部署和管理的新标准。它不仅简化了应用的部署流程,还为数据管理提供了灵活的解决方案。特别是在涉及到MySQL数据库时,数据持久化是一个不可忽视的重要环节。本文将分享如何在Docker中部署MySQL数据库,并确保数据的持久化。通过上述步骤,我们已经成功在Docker中部署了MySQL数据库,并实现了数据的持久化。Docker不仅简化了数据库的部署过程,还提供了灵活的数据管理方案。
2024-12-23 18:00:00
1672
原创 Docker环境下数据库持久化与多实例扩展实践指南
通过上述步骤,可以在Docker环境中实现数据库的持久化和多实例管理。使用Docker卷和Docker Compose可以有效地管理数据持久化和容器编排,确保数据库服务的高可用性和数据的安全性。定期备份和合理的网络存储配置是确保数据安全和高可用性的重要措施。在Docker容器化技术中,数据库的持久化和多实例管理是两个关键问题。本文将详细介绍如何在Docker中实现数据库的持久化,并有效地管理多个数据库实例。Docker卷是实现数据持久化的关键。
2024-12-23 09:52:12
380
原创 私有NuGet开源系统
BaGet是一个开源的NuGet V3服务器实现,它基于ASP.NET Core构建。:Sleet是一个开源的NuGet V3静态Feed生成器,它是一个完全静态的NuGet服务器,这意味着您可以将Feed直接托管在Azure Storage或Amazon S3上,无需计算资源。:NuGet.Server是一个MVP(最小可行产品)的NuGet服务器。它体积小且超级轻量,但功能非常有限。:LiGet是一个开源的NuGet V2服务器实现,它在Kestrel上运行,并可以在Docker中部署。
2024-12-20 10:43:14
188
原创 ABP vNext多租户配置及通过域名方式解析租户的实现
如果你需要为每个租户配置自定义域名,你可以在租户的配置中指定域名。这通常涉及到数据库中租户记录的更新,以包含每个租户的域名信息。然后,你可以使用这些信息来配置DNS,使得每个租户的自定义域名都能正确解析到你的应用服务器。在ABP vNext中实现多租户并通过域名方式解析租户,以及实现租户自定义域名的关键在于配置和使用ABP提供的租户解析器。在DNS服务器上,你需要为每个租户的自定义域名创建DNS记录,指向你的应用服务器。,你需要指定一个域名格式,这样ABP才能根据请求的域名来解析租户。将被解析为租户名称。
2024-12-18 16:45:23
539
原创 在 SQL Server 中获取指定字符所在有位置索引
这个函数返回一个整数,表示子字符串在字符串或表达式中的开始位置。如果没有找到子字符串,则函数结果为0。在 SQL Server 中,要获取指定字符在字符串中的位置,可以使用。例如,如果你想从第二个字符开始搜索。如果你需要从特定位置开始搜索,可以指定。这将返回从第二个字符开始搜索时。例如,如果你想查找字符串。
2024-12-17 13:34:28
1228
原创 Linux系统(如Ubuntu)后台运行.NET Core应用程序
服务来管理你的.NET Core应用程序。命令来启动、停止、重启和查看应用程序的状态。创建一个服务文件,例如。
2024-12-16 07:00:00
997
原创 [Ubuntu] Linux命令汇总
源:/home/ubuntu/www/demo/web下的所有文件及文件夹;目标:/var/www/demo/web。
2024-12-13 07:00:00
272
原创 abp vnext项目配置多数据库类型
1、HttpApi.Host同时引用Volo.Abp.EntityFrameworkCore.SqlServer、Volo.Abp.EntityFrameworkCore.MySQL、Volo.Abp.EntityFrameworkCore.Sqlite。一个项目实现根据appsetting.json配置文件配置的数据库类型,自动适配指定的数据库类型,而无需当数据库类型变化时再去调整代码。5、以上配置完成 之后,即可使用add-migration、Update-Database进行数据库迁移。
2024-12-13 07:00:00
637
原创 [笔记] Ubuntu Server 24.04安装MySql8,并配置远程连接
以上方法成功安装mysql,并且设置一个默认的用户及密码,在文件/etc/mysql/debian.cnf下。通过以上已经完成安装,接下来就可验证安装是否成功及配置登陆用户。(1)使用debian-sys-maint登录(2)创建数据库并设置使用户用及赋权以上操作成功之后,可以使用刚刚创建的用户及密码登陆测试。其中-h为远程IP,-P为端口号,-u为用户名,-p为密码。
2024-12-12 07:00:00
489
原创 Ubuntu如何卸载SQL Server
(如果需要): 如果您之前添加了SQL Server的存储库,您可能还需要删除这些存储库条目。: 在卸载之前,需要确保SQL Server服务已经停止。(如果需要): 检查并删除任何残留的配置文件或日志文件,这些文件可能位于。命令来卸载SQL Server。目录下的数据,因此在执行前请确保已经备份了所有重要数据。这将删除与SQL Server相关的用户和组。请注意,这个操作会删除所有存储在。参数确保配置文件也会被删除。
2024-12-11 12:00:00
666
原创 Ubuntu 24.04 LTS如何卸载安装的SQL Server 2022
请注意,卸载过程不会自动删除您可能已添加到系统的任何自定义配置或相关服务。如果有必要,您应该手动检查并删除这些内容。如果在卸载过程中遇到任何问题,可以参考 Microsoft 的官方文档或社区论坛获取帮助。这将删除 SQL Server 的数据目录,包括所有的数据库文件。请注意,这个操作是不可逆的,一旦删除,所有数据都将丢失。如果服务不再存在或显示为“inactive”,则表示 SQL Server 已被卸载。(如果需要): 您可能还需要检查并删除任何残留的配置文件或日志文件,这些文件可能位于。
2024-12-11 07:00:00
528
原创 ubuntu安装mssqlserver并配置远程连接
如果您已在配置步骤中启用远程连接,您可以直接从远程机器使用mssqlserver。如果没有,您需要更新SQL Server配置以允许远程连接。注意:确保您的Ubuntu防火墙和网络安全组允许从远程机器到SQL Server的1433端口的流量。在配置过程中,会提示您选择一个版本,设置管理员密码,选择您的版本,然后配置是否启用远程连接。5、启动并使SQL Server服务在启动时自动启动。6、配置防火墙以允许远程连接(默认端口是1433)4、配置SQL Server。9、配置远程连接(如果需要)
2024-12-10 12:31:26
1245
原创 Centos7如何安装GLIBCXX_3.4.21
以下是一个简化的脚本,用于在CentOS 7上安装GLIBCXX_3.4.20。请注意,这个脚本假设你有足够的权限来安装软件包,并且你的系统已经配置了必要的构建工具和库。在运行此脚本之前,请确保你已经备份了重要数据,并且理解脚本中的每一步操作。在CentOS 7上安装GLIBCXX_3.4.20通常涉及到升级GCC版本,因为GLIBCXX_3.4.20是libstdc++库的一部分,而这个库随GCC版本更新。在执行之前,确保你理解了脚本中的每一步操作,并做好了相应的准备。
2024-12-09 11:48:20
1009
原创 SQL Server的数据库分页的SQL语句
在 SQL Server 2008 中,由于没有OFFSET和FETCH子句,我们通常使用函数来实现分页。以下是一个使用@PageSizeWHERERowNum请将替换为你的表名,替换为你的排序列名,替换为你想要查询的列名。这种方法适用于 SQL Server 2008,并且可以根据需要调整页码和每页显示的记录数来实现分页查询。
2024-12-09 07:00:00
831
原创 LINQ 和集合:如何从多个源填充对象集合(C#)
请勿尝试将内存中数据或文件系统中的数据与仍在数据库中的数据进行联接。这种跨域联接可能产生未定义的结果,因为可能为数据库查询和其他类型的源定义了联接操作的不同方式。此外,如果数据库中的数据量足够大,这样的操作还存在可能导致内存不足的异常的风险。如果不需要存储查询的结果,那么与命名的类型相比,元组或匿名类型使用起来更方便。存储来自两个内存字符串集合(模拟 .csv 格式的电子表格数据)的合并数据。本示例演示如何将来自不同源的数据合并到一系列新的类型。”子句中,将从两个源中的数据初始化每个新的。
2024-12-07 10:00:00
150
原创 异步文件访问 (C#)
可使用异步功能访问文件。通过使用异步功能,你可以调用异步方法而无需使用回调,也不需要跨多个方法或 lambda 表达式来拆分代码。若要使同步代码异步,只需调用异步方法而非同步方法,并向代码中添加几个关键字。
2024-12-07 10:00:00
884
原创 C#异步编程中如何等待多个任务完成
尽管它的代码较少,但在混合 LINQ 和异步代码时需要谨慎使用。因为 LINQ 使用延迟的执行,因此异步调用将不会像在。),这些方法允许你编写在多个后台作业中执行非阻止等待的异步代码。预先执行查询,并将结果存储在数组中。循环中那样立刻发生,除非强制所生成的序列通过对。API 包含两种方法(即。此示例演示如何为一组。
2024-12-06 12:00:00
378
原创 LINQ 和集合:如何合并和比较字符串集合(C#)
此示例演示如何合并包含文本行的文件,并对结果排序。具体而言,此示例演示如何对两组文本行执行串联、联合和交集。它使用相同的两个文本文件,如前面的示例所示。
2024-12-06 07:00:00
153
原创 C#:异步编程场景浅析及示例
异步编程的核心是Task和Task对象,这两个对象对异步操作建模。它们受关键字async和await的支持。对于 I/O 绑定代码,等待一个在async方法中返回Task或Task的操作。对于 CPU 绑定代码,等待一个使用Task.Run方法在后台线程启动的操作。await关键字有这奇妙的作用。它控制执行await的方法的调用方,且它最终允许 UI 具有响应性或服务具有灵活性。虽然有方法可处理async和await以外的异步代码,但本文重点介绍语言级构造。在以下一些示例中,
2024-12-05 12:00:00
696
原创 LINQ 和集合:如何使用LINQ查找两个列表之间的差集(C#)
此示例演示如何使用 LINQ 对两个字符串列表进行比较,并输出那些位于第一个集合(而不是第二个集合)中的行。名称的第一个集合存储在文件。一些名称同时出现在两个序列中。名称的第二个集合存储在文件。)只能用基于方法的语法表示。某些类型的查询操作(例如。以下代码演示如何使用。
2024-12-05 07:00:00
303
原创 扩展 LINQ:按连续键对结果进行分组
此解决方案是以线程安全扩展方法实现的,该扩展方法以流的方式返回其结果。换言之,它在源序列中遍历移动时生成其组。运算符不同,它能在读取所有序列之前开始将组返回给调用方。下面的示例演示如何将元素分组为表示连续键子序列的区块。
2024-12-04 12:00:00
348
原创 如何:使用 LINQ 查询字符串
字符串存储为字符序列。作为字符序列,可以使用 LINQ 查询它们。本文中提供了几个示例查询,可查询不同字符或字词的字符串、筛选字符串,或将查询与正则表达式混合。
2024-12-04 07:00:00
885
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人