簡體   English   中英

在Visual Studio中調試.NET應用程序時,如何遠程訪問端口?

[英]How do I access a port remotely while debugging a .NET application in Visual Studio?

我在VMWare Fusion虛擬機中運行Visual Studio。 當我調試應用程序時,VS使該應用程序可在localhost:50609上使用。 我可以在vm本身中有效地使用它。 但是,我想從主機(OsX主機)中運行的模擬移動應用訪問該運行實例。 這不起作用-主機根本看不到客戶機上正在運行的實例。

我開始認為這與防火牆或VM網絡的建立方式有關。 但是,長話短說,我很確定Web應用程序專門托管在“ localhost”上,因此在localhost本身之外無法訪問。 因此,我無法在虛擬網絡上使用來賓OS的IP地址訪問該站點。 即使在來賓操作系統中,這也是事實。 即,我無法使用地址192.168.xx:50609訪問該站點,但可以使用localhost:50609訪問它(同樣,這是來自guest而不是host )。

因此,我確信VS或IIS(我認為它正在運行IIS Express; VS 2013默認提供的任何設置)都設置為僅允許通過本地主機進行連接。 出於安全原因,這似乎是一個很好的默認值,但是在這種情況下,這不是我想要的。

我可以使該調試后的應用程序可被外部計算機訪問嗎?

這是使用VM運行的,這一事實可能是無關緊要的,但我只是想提供特定的設置。 我已禁用防火牆進行測試,所以它不是那樣的。

[編輯]指向如何在Web Matrix中執行此操作的鏈接很有用,但我仍然缺少如何在Visual Studio中更改默認地址的最后一步。 我認為這只是答案的一半。

我為此苦苦掙扎了兩天,並在幾條“紅鯡魚”線索之后搜尋了網際網路。 在我的系統上,我終於按預期運行了。 關鍵是Vagrant(Docker)無法在127.0.0.1上正確轉發。 您需要將服務器設置為偵聽“ 0.0.0.0”。 通過與Vagrant中的Rails合作,我知道了這一點。 但是要找到如何在DotNet CLI(IIS)中指定此方法並不容易。 答案是,您可以將其添加到項目的“ Program.cs”中對WebHostBuilder的調用中: .UseUrls("http://0.0.0.0:5000") // Take that, Docker port forwarding!!!

或像這樣調用DotNet CLI: ASPNETCORE_URLS="https://*:5000" dotnet run

我選擇了第三個選擇。 我設置了一個環境變量: ASPNETCORE_URLS="https://*:5000"

暫無
暫無

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

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