(部署-重要)本地发布web服务端流程及当出现公网域名访问时提示"Invalid Hostname"的解决办法以及不使用localhost访问时的处理办法

https://jingyan.baidu.com/article/e3c78d6462a68b3c4d85f571.html 启用IIS管理器

新建web项目和发布服务端参考链接https://blog.csdn.net/weixin_40333655/article/details/89873553
只是在下面这一步的时候
在这里插入图片描述
将IP地址不设置为具体的地址,而使用“全部未分配”
在这里插入图片描述
这时即可保证解析到服务器绑定的任何IP都可以访问到WEB服务。这适用在多网卡服务器时配置,一般都是一个IP,或者即使是多网卡,也需要指定到确切的IP,方便管理和后期维护。

如果设置为具体的IP地址的话,尤其是在使用了外网端口映射的话,域名指向IP跟本机IP很有可能就不一样了,所以就导致解析失败了。就会提示“Invalid Hostname”.
在这里插入图片描述
在这里插入图片描述

参考链接https://blog.csdn.net/qq_33323054/article/details/81628627
IIS服务器返回Bad Request(Invalid Hostname)解决方法

很多人在配置好IIS服务器之后,打开自己的网站返回的确是Bad Request错误。导致这一错误的主要原因是域名已经解析,但是无法找到域名对应的主机。

在设置网站标识时,通常将服务器IP设置为“全部未分配”(如下图所示),这时即可保证解析到服务器绑定的任何IP都可以访问到WEB服务。这合适在多网卡服务器时配置,一般都是一个IP,或者即使是多网卡,也需要指定到确切的IP,方便管理和后期维护。

主机名推荐设置为空,如果主机名设置格式错误同意易导致访问不到想要的网站。
在这里插入图片描述
此外,防火墙也很容易拦截外部设备访问我们服务器的请求,因此推荐在发布网站前,将自己的windows防火墙关闭。防火墙的入口也可以从控制面板中找到。
在这里插入图片描述
如果觉得关闭防火墙太过不安全,可以使用下面这种方法:在防火墙中选中高级设置;
在这里插入图片描述
选中左侧入站规则,然后点击右侧的新建规则按钮;
在这里插入图片描述
在新建规则界面中,选择创建端口类型的规则,并点击下一步;
在这里插入图片描述
接下来可以选择特定的端口号,选择的端口号一般都要大于80,80号端口为浏览器默认的访问端口。
在这里插入图片描述
接下来选择连接符合条件时的操作,选择允许连接;
在这里插入图片描述
应用规则按照下图勾选,一般这些都是电脑默认的选项;
在这里插入图片描述
最后填写一下名称和描述即可完成入站规则。
在这里插入图片描述
创建该入站规则的作用是让防火墙有选择地过滤掉来自外部的访问,并同时让我们本地的网站能够被访问到。但是入站规则起作用的前提是防火墙得处于开启状态,如果防火墙没开,服务器也没安装其他防护软件,通常不会出现因为拦截而访问不了站点的问题。

不使用localhost也不使用公网域名访问时的处理办法(使用IP地址访问时,这是不适用于微信小程序的)
参考链接https://blog.csdn.net/qianxing111/article/details/79884527
博主在本地运行了自己的项目,然后在另一台服务器上用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. 在当前项目的工程路径下,找到.vs\config 文件夹下面的applicationhost.config 这个文件。.vs文件夹一般会被隐藏,找到该文件夹的办法有:
  • 第一种办法:在文件管理器的搜索框中直接搜索.vs,就能出来;
  • 第二种办法:在当前项目的根目录下,点击”查看”按钮,勾选下图红线框内的”隐藏的项目”选项,就能出现.vs文件夹。
    在这里插入图片描述
  1. 在找到applicationhost.config 文件后,打开,在文件中找到site 那个节点,修改bindings 属性,如下图所示;这其实给在iis中编辑绑定是一样的意思。
    在这里插入图片描述
  2. 具体修改的内容有几点注意的:

a. 如果用实际公网域名
, localhost 直接换成公网域名即可,vs不需要使用管理员权限打开

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

c. 如果使用局域网ip
将localhost 换成具体的ip即可,注意一定要用管理员权限打开vs。不然还是不能的。我是需要使用局域网ip,在此处新增了一条binding属性,如下图所示:
在这里插入图片描述
结果
修改完毕config后,重启下VS,重启的时候选择是否以管理员的身份运行,打开VS后,运行项目,可以看到右下角的IIS express 托盘中-查看全部运行程序,会有刚才设置的ip。
在这里插入图片描述
这时再重新运行服务器的node程序就可以访问到本地的接口了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值