ASP.NET本地IIS Express应用移动端访问提示‘Invalid Hostname’400错误求助
IIS Express访问出现400 Invalid Hostname的问题解决
问题原因
IIS Express默认只绑定localhost和回环地址127.0.0.1,它会严格校验请求的主机头是否在允许列表内。当你用电脑的局域网IP(比如192.168.x.x)从手机访问时,请求的主机头是这个局域网IP,不在IIS Express的允许名单里,所以就抛出了Invalid Hostname错误。
解决办法
方法1:修改IIS Express配置文件
- 找到
applicationhost.config文件,常见路径有两个:- 全局配置:
%USERPROFILE%\Documents\IISExpress\config\applicationhost.config - 项目专属配置:项目根目录下的
.vs\config\applicationhost.config(如果存在)
- 全局配置:
- 打开文件,定位到你项目对应的
<site>节点下的<bindings>部分,默认是这样:<bindings> <binding protocol="http" bindingInformation="*:44329:localhost" /> </bindings> - 添加新的绑定规则:
- 绑定指定局域网IP(把
192.168.1.100换成你电脑的实际IPv4地址):<bindings> <binding protocol="http" bindingInformation="*:44329:localhost" /> <binding protocol="http" bindingInformation="*:44329:192.168.1.100" /> </bindings> - 或者允许所有主机(同一WiFi环境下可用,非信任网络不推荐):
<binding protocol="http" bindingInformation="*:44329:*" />
- 绑定指定局域网IP(把
- 保存文件,重启Visual Studio和IIS Express,之后手机用
http://你的局域网IP:44329访问即可。
方法2:命令行启动IIS Express并绑定IP
- 打开CMD,切换到IIS Express安装目录:
cd "C:\Program Files\IIS Express" - 执行启动命令,替换
YourProjectRootPath为你的项目根目录路径,192.168.1.100为电脑局域网IP:iisexpress.exe /path:YourProjectRootPath /port:44329 /clr:v4.0 /binding:http://192.168.1.100:44329/ - 启动完成后,手机直接访问
http://192.168.1.100:44329就行。
额外提醒
- 先用
ipconfig命令确认电脑的局域网IPv4地址,确保手机和电脑在同一WiFi下。 - 如果是HTTPS站点,还需要配置SSL证书绑定并让手机信任该证书,不过你的场景里没提HTTPS,暂时不用管。
内容的提问来源于stack exchange,提问作者Sebastiaan Hoedeman
相关产品推荐
相关产品推荐

