2014-07-18 164 views
4

我正在建設一個網站,我想看看它是如何在Android智能手機上呈現的,所以我下載了Genymotion。我無法在Genymotion的本地站點上看到任何頁面(「錯誤的請求 - 無效的主機名稱」)。Genymotion查看本地主機網站

當我啓動Visual Studio解決方案,主頁地址是

http://localhost:18207 

所以下面我發現例如here建議我輸入Genymotion以下地址:

http://10.0.3.2:18207 

http://192.168.56.1:18207 

http://(my ip address):18207 

,但我總是有上面提到的錯誤,或者有時超時錯誤。

非常感謝您的任何建議!

回答

0

在192.168.56.1網絡上運行您的Web服務器。這通常是服務器配置中的一個設置。它可能是默認的主機真正的適配器,而不是VirtualBox連接的虛擬適配器。我不確定你在使用什麼主機操作系統,但虛擬適配器通常是vbox0用於Linux安裝。這是Genymotion所在的虛擬網絡。

您的Genymotion VM將擁有一個DHCP地址,如192.168.56.101。您可以在VM內檢查Genymotion config應用程序。如果是這種情況,並且您的Web服務器也位於此子網上,則應該能夠將Genymotion瀏覽器指向192.168.56.1。

+0

我在Windows 8.我已經嘗試過你提到的地址,正如我的問題所述,但沒有成功。在ipconfig中,我在「以太網適配器VirtualBox主機專用網絡」下有該地址。 – Sean

+0

您能否成功地從Android VM中ping通Windows主機(192.168.56.1)(即'adb shell ping 192.168.56.1')?另外,您是否檢查過您的Windows防火牆是否導致問題?我的設置可以實現你想要的,但是在Linux上,否則我會更具體。 –

+0

另外,您是否確認Web服務器實際上正在偵聽192.168.56.1?如果是,該地址也應該從Windows瀏覽器運行。除了'locahost'之外,還有其他服務器地址在Windows上運行嗎? –

4

我跑進這個確切同樣的問題,用這個博客帖子的幫助來拆分它:

http://blog.binarybits.net/applications/iis-express-http-error-400-the-request-hostname-is-invalid/

我不想採取任何信貸對於帖子的內容,只是在案件脫機我會佈置過程。實質上,您需要更新IIS Express的配置,以便它接受來自Genymotion的傳入請求。因此,假設您的網站是在8080端口上運行:

步驟1 - 修改爲您的網站的具體配置中C:\用戶\\的文檔\ IISExpress \ CONFIG \對ApplicationHost.config所以它綁*而不是本地主機

<site name="WebSite1" id="1" serverAutoStart="true"> 
<application path="/"> 
    <virtualDirectory path="/" physicalPath="PATH TO YOUR SITE" /> 
</application> 
<bindings> 
    <binding protocol="http" bindingInformation=":8080:*" /> <!-- CHANGE THIS LINE --> 
</bindings> 
</site> 

第2步 - 添加ACL規則,讓傳入連接訪問這個筆記本電腦(運行通過管理員命令)

netsh http add urlacl url=http://*:8080/ user=everyone 

步驟3 - 最後使用這個特殊的地址

http://10.0.3.2:8080/ 

爲我工作連接到您的網站中Genymotion,所以希望它爲你。

+0

正在獲取java.io.FileNotFoundException:http://10.0.3.2:54994 – nadav

+0

經過數小時的挖掘,終於有效。我正在調用IIS Express WCF Web服務而不是網站,這解決了我的問題。我只需確保將來不會切換仿真器,因爲10.0.2.3對於Genymotion的本地主機地址是唯一的。 – nishantvodoo

1

在我的情況下,Sam Storie提供的答案略有修改解決了這個問題。 我的本地服務使用MVC Web Api控制器託管(我使用的是Visual Studio 2013)。

在步驟1中,我並沒有將8080:localhost替換爲8080:*,而是在現有的一個旁邊添加了一個新的綁定。新的綁定沒有localhost或*。它看起來是這樣的:

<bindings> 
    <binding protocol="http" bindingInformation=":8080:localhost" /> <!-- Existing binding --> 
    <binding protocol="http" bindingInformation=":8080:" /> <!-- New binding. Note that there is no asterisk(*)--> 
</bindings> 

萬一它是不明確的,保證你與其中服務在本地主機上託管的實際端口替換8080。在我的情況下,它是53533.

0

你只需要使用http://yourHostIpAdress/YourWebSite(無需端口)

至少這個工作通過本地IIS發佈的網站時

相關問題