分类
ASP.NET Core

HTTP Error 500.38 – Failed to locate ASP.NET Core app

IIS 部署 ASP.NET Core 报错:HTTP Error 500.38 – Failed to locate ASP.NET Core app。

错误原因查询:https://learn.microsoft.com/zh-cn/aspnet/core/test/troubleshoot-azure-iis?view=aspnetcore-7.0

解决办法:在IIS部署时,禁用单文件发布

<PublishSingleFile>false</PublishSingleFile>
在项目文件中禁用单文件发布

如果使用VS的发布,要在发布选项中去掉“生成单个文件”发布选项的钩:

VS发布配置,去掉“生成单个文件”
分类
ASP.NET Core

asp.net core 读取系统环境变量

系统中配置的环境变量

代码如下:

var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", EnvironmentVariableTarget.Machine);

关键在于第二个参数:EnvironmentVariableTarget.Machine

分类
读书

《北方城郭》

柳建伟《北方城郭》

用了半个月的时间,把柳建伟的《北方城郭》读完了,这是一部54万字的官场反腐小说,和《白鹿原》、《平凡的世界》、《古船》并称“新时期现实主义长篇小说四大名著”。

读完后,印象比较深刻的几个人物,一个是县委副书记李金堂,一个是戏曲家欧阳洪梅,然后就是暴发户申玉豹,中华通讯社记者白剑,以及珠宝商人林苟生。

书中所展现的人物关系错综复杂。欧阳洪梅是一个矛盾体,对李金堂的爱与恨体现的淋漓尽致,这个人是一个十分清醒又矛盾的人。李金堂的各种老辣的手段让人心有余悸,正如书上写的,这个人从未败过,用欧阳洪梅的话说,怎么可能有从不失败的人。所有的人都败在他的手段下,能打败他的只有欧阳洪梅,她录下了他们谈话的重要录音,却在只播放了几句话后,又歇斯底里地把磁带销毁了。

最后白剑累了,够了,或者说是厌恶了这片土地,只身去了法国。李金堂退隐了,欧阳洪梅大概是出家为尼了,林苟生和三妞终于走到了一起,刘青松和庞秋雁被调去了大别山。结局可以说都适得其所,也算是一个圆满。

还算是不错的一本书,虽算不上荡气回肠,但把官场生活淋漓尽致地展现出来,也能让人了解一些东西。

分类
读书

《古船》

张炜《古船》

今天把张炜的《古船》看完了,看完之后,感觉心情沉重,眼泪在心里流,就像那条地下河在流淌。

《古船》的文字感觉有点古香古色,但是很有力量。描绘了新中国成立前后40年的社会风云。小说以一个古老的城镇映射了整个中国,以一条河流象征生生不息的民族精神,以一个家庭的兴衰抒写灵魂深处的挣扎与困顿。  小说生动地刻画出隋家几个子女在历史的长河中性格和命运的变迁与古老农村嬗变中的心灵阵痛与文化冲突,是一部民族的沧桑心灵史。 

从这本书中,知道了土改,知道了大跃进,知道了自然灾害,知道了还乡团,知道了走资派等等。那个时期的人太疯狂了,疯狂到简直没有人性。

里面的事情不想描述太多,让人太沉重。现在的生活来之不易,好好珍惜吧。

分类
读书

《在细雨中呼喊》

余华《在细雨中呼喊》

前段时间读完了余华的另一本书《在细雨中呼喊》。这是一本回忆题材的小说,记叙了主人公孙光林的成长历程。

初读这本书,感觉摸不着头脑,坚持读下去才会渐渐明白事情的来龙去脉。

在读的过程中,总能时不时地勾起自己童年时的记忆,随着作者的记叙,时而重现,时而消散,感觉很美好。

随着孙光林再次回到南门,随着那一声在细雨中的呼喊——“我要找孙广才”,故事结束了。到这里,可以看出孙光林成长了,从一开始的胆小、害怕,到后来敢于直呼孙广才的名字。

整本书是孙光林支离破碎回忆拼凑而成,读到最后全部弄懂后,反而感觉意犹未尽,回味无穷,以后有时间要再读一遍,到时候应该会是另一种感觉吧。

分类
WordPress

博客升级到 PHP8.1

由于 php7.4 马上结束维护了,所以把博客服务器 PHP 版本做了个升级,直接升级到当前的最新稳定版 PHP8.1。

当前 PHP 各版本维护周期

PHP8.1 的安装命令如下:

apt install php8.1-fpm php8.1-mysql php8.1-mbstring php8.1-curl php8.1-xml php8.1-imagick php8.1-zip php8.1-gd php8.1-intl php8.1-bcmath

安装完成后,顺便开启了 PHP8.1 的 JIT,以提高性能,开启方法如下:

编辑 php.ini,在 opcache 配置部分添加加粗的两行:

[opcache]
; Determines if Zend OPCache is enabled
opcache.enable=1
opcache.jit=tracing
opcache.jit_buffer_size=50M

保存后记得重启 php8.1-fpm。最后通过 phpinfo()查看效果:

PHP8.1 开启 JIT 成功

参考链接:https://stitcher.io/blog/php-8-jit-setup

分类
读书

《活着》

余华《活着》

初读余华的《活着》,其实是在今年的夏天,当时读完有很多感慨,没有及时记下来。最近在读余华的《在细雨中呼喊》,才想起这件事。

《活着》这本书读完是很压抑的,足足难受了好几天。书中透过徐福贵的讲述,记叙了一个从地主之家的少爷变为一个一无所有的无比悲惨的老农的一生。

福贵身边的人一个接一个的死去,仿佛上天对他的惩罚,又仿佛他早早就透支完了他一生的福贵,后半生只能在苦难中度过。

唯一值得庆幸的是,他身边的人都是爱他的,不离不弃,至死不渝。他身边的人也是热爱生活的。妻子家珍起早贪黑、勤俭持家,即使生病后仍想着下地干活;儿子有庆每天光脚跑着去学校,跑回来喂羊,不分寒暑;女儿凤霞虽然是个哑巴,但她是一个心灵手巧的姑娘;女婿二喜虽然偏头,但是有力气能干活;外孙苦根,多么可爱的一个孩子……

正是这样一群人一个接一个的死去,才最让人难受,最接受不了的是有庆,多么好的孩子,最后竟然死在了给县长夫人献血,血被抽干栽地身亡……看到这里,呼吸都快停止了,难受的透不过气来。

但就是在这种情况下,福贵却坚强的活着,要是换一个人,可能也就随他们而去了吧。这种情况下,死容易,活着才是最难的。福贵从一个富家少爷,变成一无所有,最后亲人一个一个死去,思想和精神上得经受怎么样的打击,怎么还能够活得下去?

但是福贵还是坚强地活下来了,而且最后还买了一头叫福贵的牛,仍劳作在这片世代生活的土地上。

最开始看这本书,是气愤的,气愤福贵的不争气,气氛他败家。后来替他身边一个个离去的人感到惋惜。再到后来,有点佩服他,竟然还能独自活着。

是的,这就是福贵的一生,其实全书不管在怎样的情况下,福贵都没有想过死,他自已也没想过要怎么活,反正就是饿了吃饭,天黑睡觉,天亮干活。

这可能就是在告诉我们一个道理,不论到了什么境况,都要坚强地活着,再惨惨不过福贵。顺其自然,珍惜身边人,做好自己该做的,不要犯福贵的过错。

分类
ASP.NET Core

.NET 7 身份验证和授权的变化

.NET 7 于今天发布了,在 ASP.NET Core 的身份验证和授权的配置上做了一些简化,变化如下:

配置登录验证的方式,从 .NET 6 的:

builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme);

变成了 .NET 7 的:

builder.Services.AddAuthentication().AddCookie();

ASP.NET Core 会自动对认证方案进行推断,从而省略了参数的配置。

对于登录验证和授权的中间件,.NET 7 中不再需要手动引入,框架会自动推断是否使用,因此,app.UseAuthentication()app.UseAuthorization()也就不再需要了。

从而,运行一个完整的 ASP.NET Core MVC 程序所需要的最简配置是这样的:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
builder.Services.AddAuthentication().AddCookie(); //👈 new feature
var app = builder.Build();
app.UseStaticFiles();
app.MapDefaultControllerRoute();
app.Run();

参考链接:https://auth0.com/blog/whats-new-in-dotnet-7-for-authentication-and-authorization/

分类
Laravel

Laravel 9 安装中文语言包

首先使用 composer 安装依赖包:

composer require laravel-lang/publisher laravel-lang/lang laravel-lang/attributes --dev

注意 laravel-lang/publisher 这个包需要 php 8.1 版本才行,如果是 php 8.1 以下版本,要使用如下命令来安装旧版:

composer require laravel-lang/publisher:^13.0 laravel-lang/lang:^10.9 laravel-lang/attributes:^1.1

然后使用下面的命令把中文语言包添加到 lang 目录下:

php artisan lang:add zh_CN

最后修改配置文件 config/app.php,来使用中文。

'locale' => 'zh_CN',

注:本文基于 Laravel Framework 9.33.0 版本测试通过。

参考链接:

https://github.com/Laravel-Lang/lang
https://publisher.laravel-lang.com/installation/

分类
生活

疫情又一次卷土重来

到今天,学校已经停课一周了,很多地方已经封控起来了。只不过这次和以往不同的是,这次不封城,只封风险区域。目前,小县城已经封闭了30多个小区,好在我们小区没事。

三年了,来日不可知,往日不可追。无比怀念过去那没有疫情,自由自在的旧时光。

每天都要做核酸,不知为何,今天人有点多