簡體   English   中英

使用IP地址而不是localhost時獲取HTTP錯誤400

[英]Getting HTTP Error 400 when using IP address instead of localhost

我用C#和VS2015創建了一個帶有Rest API的簡單Web應用程序。 Web應用程序在http://localhost:1623 ,它工作正常。

現在我正在測試Rest API使用Postman進行POST,我的url是例如http://localhost:1623/api/foo/bar ,標題為Content-Type: application/json 一切都很好,我得到了正確的答案。

我的電腦的本地IP地址是192.168.0.174 ,所以我將網址更改為http://192.168.0.174:1623/api/foo/bar ,現在我收到HTTP Error 400. The request hostname is invalid ,為什么? 不應該是一樣的嗎? 如果我嘗試在瀏覽器中使用192.168.0.174:1623而不是http://localhost:1623訪問我的Web應用程序,則會發生相同的錯誤(我得到完全相同的錯誤):

在此輸入圖像描述

嘗試使用我的IP從我的局域網中的某些設備其他設備使用API​​時,我得到了同樣的錯誤。 我需要使用IP,因為我需要從我的網絡訪問它,為什么它不起作用,我缺少什么? 我想這個這個沒有成功。

這個答案編輯applicationhost.config解決了這個問題,在VS2015中,它位於[Project Folder]\\.vs\\config\\applicationhost.config: 。vs [Project Folder]\\.vs\\config\\applicationhost.config:

由於傑克答案中的鏈接網址目前無法正常工作,並且解決方案(至少對我來說)在另一個問題的答案中有所涉及,我將在此重復以下答案:

您可以設置多個綁定。 因此,您可以為要提供的每個外部地址設置綁定,它將起作用:

<bindings>
    <binding protocol="http" bindingInformation=":1904:" />
    <binding protocol="http" bindingInformation=":1904:machineName" />
    <binding protocol="http" bindingInformation=":1904:10.1.10.123" />
</bindings>

也很有幫助。 在我的情況下,我做了:

<bindings>
    <binding protocol="http" bindingInformation=":1623:" />
    <binding protocol="http" bindingInformation=":1623:<my pc name>" />
    <binding protocol="http" bindingInformation=":1623:192.168.0.174" />
</bindings>

IIS是一個多網站服務器。 方法與主機標題名稱截然不同。 所以你需要在你的網站上設置它。

請看這個設置鏈接:

如何:使用主機標頭名稱使用主機標頭名稱托管多個站點以托管多個網站

如何使用主機標頭名稱配置多個網站

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM