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