在用C#開發Web應用程式時有個痛點,就是本機用VS開啟Web應用調試時外部機器無法存取此Web應用。這裡將會介紹如何透過設定允許區域網路和外網機器存取本機的Web應用。
目錄
1. 設定內網存取
2. 設定外網存取
1. 設定內網存取
在在設定前,本機環境如下:
作業系統:win7
IDE:Visual Studio 2010
應用程式:asp.net
想要實現區域網路內其他機器存取本機web應用程式包含以下4步驟:
第一步:設定啟動方式為IIS Express
Visual Studio 執行Web應用程式時,預設採用自家的Visual Studio開發伺服器。所以先要把專案改為用 IIS Web伺服器。
首先確保機器已經安裝了IIS Express,下載位址(10.0版本):www.microsoft.com/zh-CN/download/details.aspx?id=48264
步驟:右鍵Web專案→ 屬性→ Web標籤→ 勾選使用本機IIS Web 伺服器→ 設定連接埠並點選【建立虛擬目錄】按鈕
##第二步:設定IIS Express的applicationhost.config檔點選上面操作的【建立虛擬目錄】按鈕後,會在IIS Express的applicationhost.config檔建立虛擬目錄資訊。 檔案預設路徑:%userprofile%\My Documents\IISExpress\config\applicationhost.config找到上面應用程式的設定訊息,新增一條:<binding protocol="http" bindingInformation="*:8081:*" />範例圖: 注意:修改前若已啟動了IIS Express,修改後需要重新啟動IIS Express才生效。 第三個步驟:設定windows 防火牆完成上面2步驟後,還需要設定防火牆允許此連接埠通過。 1) 圖形操作: 開啟Windows 防火牆的進階設定:① 控制台→ Windows 防火牆→ 進階設定② 建立一個入站規則:協定TCP、連接埠為8081。 範例圖: 2) 命令列也可以執行下列指令新增一條入站規則:
netsh advfirew all firewall Add rule name=\"命令行Web访问8081\" dir =in protocol=tcp localport=8081 action =allow結果: 第四步:設定URL保留項#在Windows 7,可使用Netsh.exe 工具設定HTTP設置,允許指定URL通過。 以管理員身分執行cmd指令:
netsh http add urlacl url=http://*:8081/ user=everyone該指令為所有帳戶的指定URL
命名空間新增一個URL 保留項
更多netsh資料,可存取相關MSDN:設定HTTP 和HTTPS運行圖 2. 設定外網存取設定好內網路可存取後,想要外網的小夥伴存取本機,可透過以下2種方法:1) 連接埠對映2) 內網穿透2.1 連接埠對映前提條件:擁有路由器設定權限。
在對外的路由器中設定一條連接埠對映規則,存取外部IP位址時跳到區域網路機器上。具體操作這裡不闡述。 2.2 內網穿透在公司內開發web應用程式時,不是所有人都可以申請連接埠對映的權限,所以這時候就要有個內網穿透的解決方案了。 網路上提供內網穿透的應用很多,這裡使用的是花生殼(官網:hsk.oray.com/)。 範例: 注意:微信OAuth2.0進行網域跳轉時會加上連接埠號,此時網域連接埠為80,本機端口為8081,跳轉後的地址為網域名稱:8081會顯示錯誤。解決方法只需要設定本機web應用的連接埠也為80即可。 運行圖以上是C# Web應用程式偵錯開啟外部存取的步驟的詳細內容。更多資訊請關注PHP中文網其他相關文章!