錯誤請求 - Visual Studio 2013 中的 Asp.net WebAPI 項目的主機名無效
我在 Visual Studio Pro 2013 中執行一個非常基本的 webAPI 項目。它在我機器上的 localhost 上執行良好。然後我嘗試從另一台機器轉到瀏覽器並轉到:57571,類似於我如何通過將伺服器 ipaddress 後跟埠號來指向 rails 應用程序。然後我收到 錯誤的請求 - 無效的主機名 HTTP 錯誤 400。請求主機名無效。
我還通過將兩台 Windows 機器放入 azure 來複製這一點。一個執行visual studio pro 2013。我執行相同的應用程序,它在本地執行良好。然後,如果我嘗試從另一個 VM 指向它(在同一虛擬網路上,我也可以 ping 伺服器 vm),我仍然會收到錯誤請求 - 無效主機名 HTTP 錯誤 400。請求主機名無效。
請注意,我不關心自定義域,我只想能夠使用 IP 地址從另一台機器上執行此應用程序。這可能嗎?(如果有關於我做錯了什麼的任何想法?)這是我嘗試過 的對我 沒有用這也沒有使它起作用
我怎麼知道 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 文件中的父部分,您可以在其中找到綁定。
<system.applicationHost> <sites> <site name="WebSite1" id="1" serverAutoStart="true"> <bindings> <binding protocol="http" bindingInformation=":8080:localhost" /> </bindings> </site> </sites> </system.applicationHost>對於一個沒有更改applicationhost.config中任何內容的新項目,這大約是第 161 行。
我沒有意識到的是我認為客戶端 IP 地址是什麼,實際上不是真的。原因是我在 Azure 中有一個 VNet 到 VNet 連接,並且連接兩個 IP 地址的網關重新分配了執行我的應用程序的網路上的客戶端 IP 地址。因此,我必須查找它映射到的新 IP 地址才能不使用該
*:port:*策略