错误的请求 - 无效的主机名IIS7

bur*_*1ce 76 iis-7

当我尝试在端口8080上点击我的网络应用程序时,我收到以下错误

错误请求 - 无效主机名
HTTP错误400.请求主机名无效.

我甚至不知道从哪里开始诊断这个问题

Tay*_*ird 70

你检查绑定是IIS吗?(inetmgr.exe)它可能未注册为接受8080上的所有主机名.

例如,如果你将它设置为mysite.com:8080并在localhost:8080上命中,IIS将获得请求但没有匹配的主机名绑定,因此它拒绝.

除此之外,您应该检查服务器上的IIS日志(C:\ inetpub\logs\wmsvc#),看看您是否看到了您的请求.然后你就会知道你的客户端或服务器本身是否存在问题.

  • 在我的情况下,我必须在我的C:\ Windows\System32\drivers\etc\hosts中添加以下行:"127.0.0.1 localhost" (2认同)
  • 您在IIS管理器中的哪里配置绑定? (2认同)

Jef*_*Fay 28

FWIW,如果您只想允许指向任何主机名/ ip的请求,那么您可以像这样设置绑定:

<binding protocol="http" bindingInformation="*:80:*" />
Run Code Online (Sandbox Code Playgroud)

我使用此绑定,以便我可以使用IE6加载VM,然后调试我的应用程序.


编辑:使用IIS Express进行调试时,此选项的配置文件的默认位置是

C:\Users\{User}\Documents\IISExpress\config\applicationhost.config
Run Code Online (Sandbox Code Playgroud)

  • 您还可以使用我们称为 Conveyor 的免费 VS 扩展(不涉及配置更改)让 IIS Express 处理远程请求。使用 Tools-&gt;Extensions... 获取它,或在 https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti (2认同)

小智 22

Microsoft的页面介绍了如何从本地网络上的其他计算机设置对IIS Server Express的访问.

简而言之:

1)从具有管理员权限的命令提示符:

netsh http add urlacl url=http://[your ip address]:8181/ user=everyone
Run Code Online (Sandbox Code Playgroud)

2)在具有高级安全性的Windows防火墙中,为端口8181创建新的入站规则以允许外部连接

3)在applicationhost.config中,在项目的节点中,添加:

<binding protocol="http" bindingInformation="*:8181:[your ip address]" />

不要添加(如另一个答案所示):

<binding protocol="http" bindingInformation="*:8181:*" />

上面的通配符绑定打破了我的访问权限 http://192.168.1.6:8181/

  • 另外,您必须以“管理员权限”运行Visual Studio,否则将无法绑定到IIS Express。以管理员身份完成测试后,您需要通过从applicationhost.config文件中删除多余的条目并使用以下命令来删除HTTP.sys条目来撤消前面的步骤:`netsh http delete urlacl url = http:// [您的IP地址]: 8181 /` (3认同)

SIN*_*ITY 22

所以,我通过在IIS管理器中访问我的网站并将站点绑定中的主机名从localhost更改为*来解决这个问题.立即开始工作.

IIS中的站点绑定


小智 7

如果在本地服务器上工作或者您没有域名,请删除“主机名:”字段。 在此输入图像描述


Luc*_*Sam 5

不要忘记绑定到 IPv6 地址!我试图使用 localhost 在 127.0.0.1 上添加一个站点,但收到错误请求/无效主机名错误。当我 ping localhost 时,它解析为 ::1 因为启用了 IPv6,所以我只需要添加额外的绑定来解决这个问题。

IIS 站点绑定


img*_*gen 5

对于Visual Studio 2017Visual Studio 2015IIS Express设置存储在隐藏.vs目录中,并且路径是这样的.vs\config\applicationhost.config,如下所示添加绑定即可

<bindings>
    <binding protocol="http" bindingInformation="*:8802:localhost" />
    <binding protocol="http" bindingInformation="*:8802:127.0.0.1" />
</bindings>
Run Code Online (Sandbox Code Playgroud)

  • 对于使用此方法的任何人,我不必注意正确的绑定信息模板是: ip address:port:host header 。所以正确的实现是:`&lt;bindings&gt; &lt;binding protocol="http" bindingInformation="localhost:8802:*" /&gt; &lt;binding protocol="http" bindingInformation="127.0.0.1:8802:*"/&gt; &lt;/绑定&gt;` (2认同)