如何将基于.NET 9.0的Blazor Web应用发布到IIS 8.5?
Blazor Web应用发布到Windows Server 2012 R2 IIS 8.5实操步骤
一、先搞定服务器环境
- 安装.NET 9.0 ASP.NET Core Hosting Bundle:Windows Server 2012 R2需手动下载安装这个包,它包含.NET运行时和IIS托管模块,安装完成后务必重启服务器生效。
- 开启IIS必需组件:打开服务器管理器,通过「添加角色和功能」流程,勾选Web服务器(IIS)下的这些项:
- 常见HTTP功能:静态内容、默认文档、目录浏览、HTTP错误
- 应用程序开发:ASP.NET 4.5、.NET Extensibility 4.5(虽用.NET Core,但部分依赖需要这些组件)
- 管理工具:IIS管理控制台
- 确认ASP.NET Core模块已安装:该模块随Hosting Bundle自带,安装后会在IIS中添加对应托管模块,用于运行.NET Core应用。
二、在VS Code里发布应用
- 打开你的Blazor项目,按`Ctrl+``调出终端
- 执行发布命令:
dotnet publish -c Release -o ./publish-c Release:生成生产环境优化包,性能优于Debug版本-o ./publish:将发布文件输出到项目根目录的publish文件夹中
- 发布完成后,把
publish文件夹内的所有文件打包成ZIP,通过远程桌面、FTP等方式传到服务器上
三、IIS里配置站点
- 将ZIP包解压到服务器的指定目录,比如
C:\BlazorApps\MyBlazorApp - 打开IIS管理器,右键「站点」→「添加网站」:
- 网站名称:自定义命名,比如MyBlazorSite
- 物理路径:选择刚才解压的文件夹路径
- 端口:选择未被占用的端口,比如8080,若没有其他站点占用80也可使用默认端口
- 主机名:需要绑定域名则填写,无需绑定则留空
- 调整应用程序池:
- 找到对应站点的应用程序池(默认与站点同名),右键「高级设置」
- .NET CLR版本:选择「无托管代码」(.NET Core应用无需传统.NET Framework托管)
- 身份:设置为LocalSystem或拥有站点目录读写权限的账户,避免权限问题
- 测试:在服务器上打开浏览器,访问
http://localhost:8080(对应你设置的端口),能正常显示Blazor页面即为配置成功
四、常见问题解决
- 502.5错误:大概率是.NET运行时或托管模块未安装正确,检查Hosting Bundle是否安装完整,重启服务器重试
- 权限报错:给站点目录添加应用程序池账户的读取、执行权限
- 静态资源加载失败:确认IIS的静态内容组件已开启,且物理路径设置正确
内容的提问来源于stack exchange,提问作者DevQt
相关产品推荐
相关产品推荐

