Windows 11下如何将外部HTTP API请求重定向至localhost端口?
解决本地IP访问VS调试API的400错误问题
问题根源
Visual Studio调试时使用的Web服务器(IIS Express或ASP.NET Core内置服务器)默认仅绑定localhost,不监听本地IP地址。当请求使用本地IP访问时,服务器无法识别请求的Host头,因此返回400错误。
方案一:修改项目配置,让API直接监听本地IP
适用于ASP.NET Framework(IIS Express)项目
- 打开项目根目录下的隐藏文件夹
.vs\config\applicationhost.config - 找到对应项目的
<site>节点,在<bindings>节点中添加一条新绑定:
替换<binding protocol="http" bindingInformation="*:12345:192.168.1.100" />12345为调试时的实际端口,192.168.1.100为你的电脑本地IP - 保存文件后重启Visual Studio并重新启动调试,此时API会同时监听
localhost和指定IP,直接用http://你的本地IP:端口即可访问
适用于ASP.NET Core项目
- 打开项目根目录下的
Properties/launchSettings.json - 找到调试配置节点(如
IIS Express或项目名称),修改applicationUrl字段,添加本地IP的监听地址:"applicationUrl": "http://localhost:12345;http://192.168.1.100:12345" - 保存文件后重启调试,API将同时监听
localhost和指定IP,移动设备在同一局域网内可直接调用
方案二:用IIS的ARR+URL Rewrite实现反向代理转发
- 确认已在IIS中安装Application Request Routing和URL Rewrite模块(可通过IIS管理器的“模块”列表验证)
- 打开IIS管理器,新建网站:绑定协议选
http,IP选择你的本地IP,端口填要对外暴露的端口(如12345),主机名留空 - 进入该网站的“URL Rewrite”功能,点击“添加规则”,选择“反向代理”
- 在目标地址中输入
localhost:12345,勾选“启用SSL Offloading”(HTTP请求可忽略此选项),点击确定 - 完成配置后,访问
http://你的本地IP:12345会自动转发到http://localhost:12345,移动设备可正常调用
补充说明
之前遇到的IIS默认网站加端口后报“HTTP Error 400. The request hostname is invalid.”,是因为网站绑定的主机名与请求的Host头不匹配。只需将网站绑定的主机名留空,IP设为“全部未分配”或你的本地IP,即可解决该问题。
内容的提问来源于stack exchange,提问作者John Ureke
相关产品推荐
相关产品推荐

