Blazor小白笔记13-网站部署到IIS 10

Blazor小白笔记13-网站部署到IIS 10

编码文章call10242025-03-10 12:31:4052A+A-

记录Blazor server部署到iis时遇到的问题,边部署边记录边处理问题,好在最终是能正常访问了。

发布站点

在vs2022中,点击菜单“生成”->“发布”,在发布时选择好发布文件夹和目标运行时,比如部署在X64系统上时,就不要选择X86,这关系到后面下载哪个运行时。

部署到IIS

打开IIS管理器,选中网站,点击“添加网站”,输入网站名称,应用程序池就自动和网站名称相同了,设置好路径和IP地址,就可以了。如果你运气很好,就能直接访问了,但是第一次还想一次部署成功的可能性较小

HTTP Error 500.30 - ASP.NET Core app failed to start

出现这个错误,最先需要的是安装一下运行时吧,官方地址
https://dotnet.microsoft.com/zh-cn/download,选择所有.net8.0版本

然后选择对应的asp.net core运行时就可以了,上面第一步选择是的X64,就选择X64版本就可以了。

还有可能是站点文件夹没有IIS_user权限导致的,需要给它设置上IIS_user完全控制权。

HTTP Error 500.31 - ANCM Failed to Find Native Dependencies

上面搞完后又出现下面的错误了,继续解决。

还是运行时的问题,有可能依赖项丢失或损坏,或者就没有安装依赖项,还是重新装一次吧,这里选.net 8.0,下载地址
https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0;

安装完成后以为好了,结果又出现500.30错误了,那就重新再安装一下运行时吧,发现安装完重启后还是不行。

开启错误日志

网上搜了下,其他导致IIS 500.30的错误有一百多种,具体哪一种得看自己遇到的具体是哪一种,只能看日志了,打开发布文件夹中的web.config文件,把stdoutLogEnabled设置为true就能显示日志文件了。

看了日志文件后里面的主要内容就是说启用压缩中间件错误(ResponseCompression),打开program.cs文件,在build下面增加
builder.Services.AddResponseCompression(),重新发布后发现竟然好了。

那么为啥它在VS2022中直接运行时不会出错了,往下看发现它区分了是不是开发模式,开发模式下不压缩,所以也就不会报错了。

var app = builder.Build();

//判断是不是开发模式
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
    app.UseResponseCompression();
}

美好的运行界面

换一个有IP地址的

在IIS中可以给站点多绑定几个,如https,虽然会提醒证书有问题,但还是可以用的


#职场##挑战30天在头条写日记##冬日生活打卡季#

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4