IIS 10.0本地访问404求助:localhost/127.0.0.1无法访问但VM IP正常
以下是针对你遇到的VM IP访问正常,但localhost/127.0.0.1访问404的IIS相关配置排查点:
站点绑定的IP/主机头匹配问题
即使你提到增减绑定现象不变,仍需确认站点是否绑定了回环地址或localhost主机头。IIS的站点绑定是严格区分IP和主机名的——如果你的站点只绑定了VM分配的IP,当用localhost/127.0.0.1访问时,IIS会将请求路由到默认站点(若默认站点未部署你的应用,就会返回404)。
操作:打开IIS管理器→选中目标站点→点击「绑定」→添加或确认存在127.0.0.1(IP地址)或localhost(主机名)的绑定条目,端口与访问时保持一致(如80/443)。URL重写规则的IP/Host头限制
若站点配置了URL重写模块,可能规则中仅允许VM IP的请求通过,拦截了回环地址的请求。
操作:进入IIS管理器→目标站点→「URL重写」→检查所有规则,确认是否存在针对localhost/127.0.0.1的拒绝规则,或规则仅匹配VM的IP地址。ASP.NET应用的路由/监听约束
ASP.NET应用(尤其是MVC/Web API)可能在路由配置中限定了请求的Host头,或启动时仅监听VM的IP而非所有IP:- .NET Core+:检查
Program.cs中WebApplication.CreateBuilder后的监听配置,确认是否设置为app.Run("http://0.0.0.0:端口")(监听所有IP),而非仅VM的IP;同时检查路由是否添加了Host约束。 - .NET Framework:检查
Global.asax中的路由注册代码,确认无Host头相关的路由约束。
- .NET Core+:检查
默认文档配置不匹配
虽然VM IP访问正常,但回环地址访问时可能触发了不同的默认文档逻辑。
操作:进入IIS管理器→目标站点→「默认文档」,确认你的应用入口页面(如default.aspx、index.html)在列表中,且优先级高于其他无关文档。
内容的提问来源于stack exchange,提问作者user3845224

