我正在 Visual Studio Pro 2013 中运行一个非常基本的 webAPI 项目。它在我的计算机上的本地主机上运行良好。然后,我尝试从另一台机器转到浏览器并转到:57571,类似于我如何通过将服务器 IP 地址后跟端口号来指向 Rails 应用程序。然后我得到 错误请求 - 无效主机名 HTTP 错误 400。请求主机名无效。
我还通过将两台 Windows 计算机放入 azure 中来复制此操作。一个正在运行 Visual Studio Pro 2013。我运行相同的应用程序,它在本地运行良好。然后,如果我尝试从另一个虚拟机(在同一虚拟网络上,我也可以 ping 服务器虚拟机)指向它,我仍然会收到错误请求 - 无效主机名 HTTP 错误 400。请求主机名无效。>
请注意,我不关心自定义 domian,我只是希望能够使用 IP 地址从另一台计算机运行此应用程序。这可能吗? (如果是的话,对我做错了什么有什么想法吗?) 这是我尝试过的 Didnt work for me This also didnt make it work
我如何知道 Visual Studio 正在以管理员身份运行?
(我使用的是运行 Visual Studio 的 Windows Server 2012 R2。我关闭了两台计算机上的防火墙)
最佳答案
这是我如何让它工作的。
转到 Visual Studio 2013 中的 C:\users\yourusername\Documents\IISExpress\config\applicationhost.config
将以下行添加到 applicationhost.config 使其正常工作
<binding protocol="http" bindingInformation="*:53676:*" />
这不起作用的地方
<binding protocol="http" bindingInformation="<clientsIPaddress>:53676:*" />
Vs2015 更新以及此更改 application.config 的确切位置概述如下。
VS 2015 的文件路径如下。
C:\Users\\{YourUsername}\Documents\Visual Studio 2015\Projects\\{ThisSolutionName}\\.vs\config\applicationhost.config
正如丹尼尔提到的。
我应该把它放在 application.config 的什么位置?
下面是 XML 文件中的父部分,您可以在其中找到绑定(bind)。
<system.applicationHost>
<sites>
<site name="WebSite1" id="1" serverAutoStart="true">
<bindings>
<binding protocol="http" bindingInformation=":8080:localhost" />
</bindings>
</site>
</sites>
</system.applicationHost>
这是一个新项目的大致第 161 行,它没有更改 applicationhost.config 中的任何内容。
我没有意识到我所认为的客户端 IP 地址实际上不是真的。原因是我在 Azure 中有一个 VNet 到 VNet 连接,并且连接两个 IP 地址的网关重新分配了运行我的应用程序的网络上的客户端 IP 地址。因此,我必须查找它映射到的新 IP 地址,以便不使用 *:port:*
策略
关于asp.net - 错误请求 - Visual Studio 2013 中的 Asp.net WebAPI 项目的主机名无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28699538/