Asp.net

錯誤請求 - Visual Studio 2013 中的 Asp.net WebAPI 項目的主機名無效

  • February 24, 2015

我在 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:*策略

引用自:https://stackoverflow.com/questions/28699538