使用Visual Studio 2019调试Web应用遇HTTP 403.4错误,排查无果求解答
我之前调试Web项目时也踩过这个403.4的坑,你已经做了SSL禁用和config文件清理,那可以再排查这几个容易遗漏的点:
检查项目启动URL是否还指向HTTPS
右键项目→属性→调试,看看「启动URL」或者「特定页」是不是还是https://localhost:xxxx开头的。如果是,改成http://localhost:xxxx(端口号对应你项目的HTTP端口),保存后重新启动调试。查看Web.config里的URL重写规则
打开项目根目录的Web.config,搜索<rewrite>节点,如果里面有把HTTP请求强制跳转到HTTPS的规则(比如类似下面的配置),先把这段规则注释掉或者删除,再试:<rules> <rule name="HTTP to HTTPS redirect" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> </rule> </rules>清理浏览器缓存或用隐身模式测试
有时候浏览器会缓存之前的HTTPS重定向记录,即使项目已经改成HTTP,还是会自动跳转到HTTPS导致报错。你可以清掉浏览器的缓存(包括Cookie和站点数据),或者直接用隐身窗口启动调试,看看是不是还会出现问题。重置IIS Express
按下Win+R打开运行窗口,输入iisexpress /reset执行,重置IIS Express的所有配置,然后重新打开VS启动项目,让VS重新生成干净的配置文件。检查项目的绑定配置
如果上面的方法都不行,你可以找到重新生成的applicationhost.config文件(一般在.vs\[你的项目名]\config路径下),打开后搜索<site>节点,找到你项目对应的站点,看看<bindings>里是不是只有HTTP的绑定,比如:<bindings> <binding protocol="http" bindingInformation="*:51234:localhost" /> </bindings>如果还有HTTPS的绑定,直接删掉那一行,保存后重启VS调试。
这些方法应该能覆盖大部分遗漏的配置点,你可以一个个试过来,应该能解决问题。
内容的提问来源于stack exchange,提问作者user521379

