使用Visual Studio Installer Projects的Web Setup无法配置Blazor Server应用IIS部署
Blazor Server 部署到IIS默认网站子应用遇403.14错误的解决方法
问题背景
使用Microsoft Installer Projects的Web Setup模板制作安装包,将Blazor Server应用部署到IIS默认网站下作为子应用后,访问时弹出403.14禁止错误,开启目录浏览仅能看到文件列表,无法运行应用;但手动新建独立站点指向发布文件时,应用可正常工作。
相关截图
- 安装包配置界面:

- IIS中部署的子应用:

- 403错误页面:

- 手动部署正常的站点:

解决步骤
1. 修正子应用的应用池配置
Blazor Server依赖ASP.NET Core模块,子应用必须使用正确的应用池:
- 打开IIS管理器,找到默认网站下的Blazor子应用,右键选「管理应用程序」→「高级设置」
- 确认托管管道模式为「集成」,应用程序池绑定的是.NET Core专用池(.NET CLR版本选「无托管代码」,管道模式「集成」)
- 若没有合适的应用池,新建一个:右键「应用程序池」→「添加应用程序池」,按上述参数配置,再将子应用绑定到新池
2. 添加Blazor专属默认文档
Blazor的入口是_Host.cshtml,默认IIS不会识别这个文件,需要手动添加:
- 进入子应用的IIS配置,打开「默认文档」
- 点击「添加」,输入
_Host.cshtml,并将它移到默认文档列表的最顶端
3. 检查Web Setup项目的部署配置
确保安装包的源路径和部署目标正确:
- 在Visual Studio的Web Setup项目中,确认「Web应用程序文件夹」的源路径指向Blazor应用的完整发布目录(必须包含
web.config、_Host.cshtml及所有发布文件) - 查看项目属性,确认「VirtualDirectory」设置的是你要在默认网站下创建的子应用名称
- 验证安装包部署时,
web.config被正确复制到子应用目录(web.config无需手动修改,用发布生成的默认配置即可)
4. 配置文件夹权限
确保IIS应用池用户能访问子应用的物理文件:
- 找到子应用的物理路径文件夹,右键→「属性」→「安全」
- 添加应用池用户(格式:
IIS AppPool\[你的应用池名称]),授予「读取」「执行」「列出文件夹内容」权限
内容的提问来源于stack exchange,提问作者Paris
相关产品推荐
相关产品推荐

