zoukankan      html  css  js  c++  java
  • 解决报错HTTP Error 400. The request hostname is invalid.

    描述

    博主在本地运行了自己的项目,然后在另一台服务器上用node.js写了一个独立程序,该程序内会调用本地项目的接口,发现在配置完http请求的options–》hostname为本地的ip后,运行这个独立程序报错:HTTP Error 400. The request hostname is invalid.



    开始以为我的本地ip设置错误或者防火墙阻挡或者网络通信有问题,后面经过分析:windows系统防火墙开启了web服务没有阻挡;本地与那台服务器属于同一个网段(连接同一VPN),不需要经过什么端口映射;百度了一下这个错误,发现是与IIS Express–web服务器有关。核心是要使本地项目支持以IP的形式作为Hostname来访问。当前只支持localhost作为hostname访问。
    操作步骤

    本地项目是用IIS Express运行的.NET项目。现在就要让VS2017 使用IIS Express 支持非localhost访问。
    步骤如下:
    1. 在当前项目的工程路径下,找到.vsconfig 文件夹下面的applicationhost.config 这个文件。.vs文件夹一般会被隐藏,找到该文件夹的办法有:
    - 第一种办法:在文件管理器的搜索框中直接搜索.vs,就能出来;
    - 第二种办法:在当前项目的根目录下,点击”查看”按钮,勾选下图红线框内的”隐藏的项目”选项,就能出现.vs文件夹。


    2. 在找到applicationhost.config 文件后,打开,在文件中找到site 那个节点,修改bindings 属性,如下图所示;这其实给在iis中编辑绑定是一样的意思。



    3. 具体修改的内容有几点注意的:

    a. 如果用实际公网域名
    <binding protocol="http" bindingInformation="*:9999:localhost" />, localhost 直接换成公网域名即可,vs不需要使用管理员权限打开

    b. 如果用自定义域名
    localhost 替换为自定义域名,如果是管理员权限打开不需要编辑系统的hosts文件,如果是普通权限打开,需要编辑hosts文件;
    我是win7系统,hosts文件在 C:WindowsSystem32driversetc 下面,是隐藏的,所以要从系统菜单-工具-文件夹选项-的显示中选择显示隐藏的文件夹。
    我在修改的时候,安装的杀毒软件小红伞阻止修改host,选择允许就可以保存了,不然会提示有其他文件正在打开,不让保存。

    c. 如果使用局域网ip
    将localhost 换成具体的ip即可,注意一定要用管理员权限打开vs。不然还是不能的。我是需要使用局域网ip,在此处新增了一条binding属性,如下图所示:


    结果

    修改完毕config后,重启下VS,重启的时候选择是否以管理员的身份运行,打开VS后,运行项目,可以看到右下角的IIS express 托盘中-查看全部运行程序,会有刚才设置的ip。



    这时再重新运行服务器的node程序就可以访问到本地的接口了。
    ————————————————
    版权声明:本文为CSDN博主「tongwandouQX」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qianxing111/article/details/79884527

  • 相关阅读:
    CDZSC_2015寒假新人(4)——搜索 A
    第一次组队赛---2010年全国大学生程序设计邀请赛(福州)L
    ZSC新生赛 沼跃鱼早已看穿了一切
    ZSC新生赛 聪明的员工
    CDZSC_2015寒假新人(1)——基础 I
    Linux 系统时间和硬件时间
    Python 深浅复制
    Python 函数内省
    Python 函数参数
    Python 可调用对象
  • 原文地址:https://www.cnblogs.com/wangdash/p/12848945.html
Copyright © 2011-2022 走看看