开发期间将Blazor WASM部署到本地IIS遇问题求助
问题排查与解决方案
1. 必须安装ASP.NET Core托管模块(ANCM)
你遇到的403.14错误核心原因是IIS无法将请求转发给ASP.NET Core应用,这说明ASP.NET Core托管模块(ANCM)未正确安装:
- 打开「控制面板」→「程序和功能」→「启用或关闭Windows功能」,展开「Internet Information Services」→「万维网服务」→「应用程序开发功能」,勾选对应你项目.NET版本的「ASP.NET Core」选项,确认后重启IIS。
- 若找不到该选项,直接下载对应版本的.NET SDK安装包,重新安装时会自动配置ANCM模块。
2. 修正IIS网站的物理路径
你当前设置的物理路径是源代码目录,这是错误的——开发阶段用本地IIS调试,IIS必须指向项目构建后的输出目录:
- 打开IIS管理器,找到你的localhost网站,右键进入「高级设置」,将「物理路径」修改为项目的Debug输出目录,比如
C:\Users\xxx\source\repos\BlazorAppIIS\BlazorAppIIS\Server\bin\Debug\net7.0(替换net7.0为你的项目实际.NET版本)。 - 也可以在VS的FULL IIS调试配置中,让VS自动管理物理路径,避免手动指定错误。
3. 调整应用池身份与目录权限
- 应用池身份:将网站对应的应用池身份改为「LocalSystem」或者你的个人Windows用户账户(开发阶段用高权限身份避免权限问题),不要用默认的ApplicationPoolIdentity,它对用户目录的权限不足。
- 目录权限:给构建输出目录添加「IIS AppPool\你的应用池名称」的读写权限,而非仅添加IUSR——ANCM是通过应用池身份访问文件的,IUSR仅负责匿名请求的身份验证,不参与应用托管。
4. 完善launchSettings.json配置
你的配置缺少关键关联项,修正后如下:
{ "profiles": { // 保留原有IIS Express等配置 "IIS": { "commandName": "IIS", "launchBrowser": true, "launchUrl": "http://localhost:49726", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }, "applicationUrl": "http://localhost:49726" } }, "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iis": { "applicationUrl": "http://localhost:49726", "sslPort": 0 } } }
确保IIS配置下的applicationUrl与IIS网站绑定的端口完全一致,让VS调试时能正确关联到目标IIS站点。
5. 禁用目录浏览并确认web.config存在
- 禁用之前开启的目录浏览,403.14错误的本质是IIS既找不到默认文档,又没有ANCM处理请求。
- 确认构建输出目录下存在
web.config文件,这是VS构建时自动生成的,里面包含了ANCM的转发规则,会让IIS把所有请求交给ASP.NET Core应用处理。如果该文件缺失,重新构建项目即可生成。
6. 坚持以管理员身份启动VS
本地IIS调试必须以管理员身份运行VS,否则VS无法向IIS部署构建文件或修改站点配置,这是硬性要求。
内容的提问来源于stack exchange,提问作者Dorian
相关产品推荐
相关产品推荐

