如何在IIS上托管.NET Core应用?本地部署遇问题求助
本地IIS托管Web应用问题排查指南
一、先搞定「显示目录列表而非网站」的问题
- 检查默认文档设置:
- 打开IIS管理器,找到你的站点,双击右侧的「默认文档」
- 看看你的应用入口文件(比如
index.html、default.aspx,或者.NET应用的启动页)在不在列表里,没有的话点「添加」输入文件名保存,还要把它移到列表最上面,让IIS优先加载 - 关掉目录浏览:在站点功能里找到「目录浏览」,如果是启用状态,右键直接禁用——这样IIS就不会展示文件夹结构了
二、修复Error 500.19(配置文件无效)
这个错误大多是权限不足或者IIS缺少必要模块,按以下步骤排查:
- 给站点文件夹加权限:
右键站点文件夹→「属性」→「安全」,点「编辑」→「添加」,分别输入IIS_IUSRS和IUSR,给这两个账户开「读取和写入」权限后保存 - 安装对应技术栈的IIS模块:
打开「控制面板」→「程序和功能」→「启用或关闭Windows功能」,展开「Internet Information Services」→「万维网服务」→「应用程序开发功能」,勾选你应用对应的模块(比如ASP.NET 4.8、.NET Extensibility等,根据技术栈选择) - 检查
web.config语法:
直接用VS打开web.config,看有没有红色波浪线提示的语法错误,修复后重新部署
三、解决Error 401(未授权访问)
这个错误是权限验证失败,试试这两个调整:
- 调整匿名身份验证设置:
在IIS站点的「身份验证」功能中,右键「匿名身份验证」→「编辑」,选择「应用程序池标识」,或者指定一个有权限访问站点文件夹的账户 - 检查应用池身份:
找到站点对应的应用池,右键「高级设置」,把「进程模型」下的「标识」改成「ApplicationPoolIdentity」,或者换成一个拥有站点目录权限的本地账户
四、最后做基础验证
- 确认站点的物理路径指向发布后的应用目录,不是VS的源码文件夹(要指向包含
bin、wwwroot这些文件的文件夹) - 重启站点和应用池:右键站点→「管理网站」→「重启」;右键应用池→「回收」,确保配置生效
内容的提问来源于stack exchange,提问作者Shilpa
相关产品推荐
相关产品推荐

