VS2015调试本地IIS应用报403禁止错误:IIS正常VS调试失败
解决VS2015调试IIS应用时403 Forbidden错误的方案
我之前也碰到过一模一样的问题,折腾了好一会儿才搞定,给你几个排查和解决的方向,按顺序试应该能解决:
检查IIS站点的身份验证设置
这是最常见的原因!打开IIS管理器找到你的应用站点,双击「身份验证」选项:- 必须启用「Windows身份验证」——VS调试需要通过这个来和IIS建立调试会话
- 如果你的应用本身允许匿名访问,也把「匿名身份验证」打开,避免额外的权限拦截
确认VS项目的服务器配置
右键项目→属性→「Web」标签页,仔细核对:- 服务器类型选「本地IIS」,不要选IIS Express
- 「项目URL」必须和你在IIS里设置的虚拟目录地址完全一致(比如
http://localhost/YourAppName) - 哪怕你已经建过虚拟目录,也点一下「创建虚拟目录」按钮,修复VS和IIS之间的关联权限
给应用文件夹加对权限
IIS应用池的运行账户和你当前的Windows账户,都需要能访问应用的物理文件夹:- 找到应用的物理文件夹,右键→属性→「安全」标签
- 添加
IIS AppPool\你的应用池名称(比如默认池就是IIS AppPool\DefaultAppPool),给它「读取&执行」「列出文件夹内容」「读取」权限;如果应用需要写操作(比如上传、日志),再加「写入」 - 同样,把你当前登录Windows的账户也加进去,给相同的权限——VS调试时会用这个账户访问文件
确保IIS允许DEBUG动词
调试请求需要用到DEBUGHTTP动词,要是被拦截就会403:- IIS管理器里找到你的站点,双击「请求筛选」
- 切到「HTTP 动词」标签,看看有没有
DEBUG,没有的话点击「允许动词」添加进去 - 顺便检查「规则」里有没有针对调试路径的拦截规则,有的话暂时禁用试试
重置IIS和VS缓存
有时候缓存会搞事情,试试这两步:- 用管理员权限开命令提示符,输入
iisreset重置IIS - 关闭VS2015,找到项目根目录下的
.vs隐藏文件夹删掉,再重新打开VS加载项目调试
- 用管理员权限开命令提示符,输入
临时排查防火墙/杀毒软件
有些杀毒软件或者本地防火墙会拦截VS和IIS之间的调试通信,暂时禁用它们试试,如果能正常调试了,就把VS和IIS加到信任列表里
小提示:如果以上都没用,打开VS的「输出」窗口(调试→输出),切换到「调试」分类,里面会有更详细的错误细节,能帮你定位具体是哪个环节出问题了
内容的提问来源于stack exchange,提问作者Mitali Patil
相关产品推荐
相关产品推荐

