C# Web應(yīng)用調(diào)試開啟外部訪問步驟解析
在用C#開發(fā)Web應(yīng)用時有個痛點(diǎn),就是本機(jī)用VS開啟Web應(yīng)用調(diào)試時外部機(jī)器無法訪問此Web應(yīng)用。這里將會介紹如何通過設(shè)置允許局域網(wǎng)和外網(wǎng)機(jī)器訪問本機(jī)的Web應(yīng)用。
目錄
- 設(shè)置內(nèi)網(wǎng)訪問
- 設(shè)置外網(wǎng)訪問
1. 設(shè)置內(nèi)網(wǎng)訪問
在設(shè)置之前,本機(jī)環(huán)境如下:
操作系統(tǒng):win7
IDE:Visual Studio 2010
應(yīng)用:ASP.net
想要實(shí)現(xiàn)局域網(wǎng)內(nèi)其他機(jī)器訪問本機(jī)web應(yīng)用包含以下4步:
第一步:設(shè)置啟動方式為IIS Express
Visual Studio 運(yùn)行Web應(yīng)用時,默認(rèn)采用自身的Visual Studio開發(fā)服務(wù)器。所以先要把項目改為用 IIS Web服務(wù)器。
首先確保機(jī)器已經(jīng)裝了IIS Express,下載地址(10.0版本):https://www.microsoft.com/zh-CN/download/details.aspx?id=48264
步驟:右鍵Web項目 → 屬性 → Web選項卡 → 勾選使用本地IIS Web 服務(wù)器 → 設(shè)置端口并點(diǎn)擊【創(chuàng)建虛擬目錄】按鈕
第二步:設(shè)置IIS Express的applicationhost.config文件
點(diǎn)擊上面操作的【創(chuàng)建虛擬目錄】按鈕后,會在IIS Express的applicationhost.config文件創(chuàng)建虛擬目錄信息。
文件默認(rèn)路徑:%userprofile%\My Documents\IISExpress\config\applicationhost.config
找到上面應(yīng)用程序的配置信息,添加一條<binding>:
<binding protocol="http" bindingInformation="*:8081:*" />
示例圖:
注意:修改前若已啟動了IIS Express,修改后需要重新啟動IIS Express才生效。
第三步:設(shè)置windows 防火墻
完成上面2步后,還需要設(shè)置防火墻允許此端口通過。
1) 圖形操作:
打開 Windows 防火墻的高級設(shè)置:
① 控制面板 → Windows 防火墻 → 高級設(shè)置
② 創(chuàng)建一條入站規(guī)則:協(xié)議TCP、端口為8081。
示例圖:
2) 命令行
也可以執(zhí)行以下命令添加一條入站規(guī)則:
netsh advfirewall firewall Add rule name=\"命令行Web訪問8081\" dir=in protocol=tcp localport=8081 action=allow
結(jié)果:
第四步:配置URL保留項
在Windows 7,可使用 Netsh.exe 工具配置HTTP設(shè)置,允許指定URL通過。
以管理員身份運(yùn)行cmd命令:
netsh http add urlacl url=http://*:8081/ user=everyone
該命令為所有帳戶的指定 URL 命名空間添加一個 URL 保留項
更多netsh資料,可訪問相關(guān)MSDN:配置 HTTP 和 HTTPS
運(yùn)行圖
2. 設(shè)置外網(wǎng)訪問
設(shè)置好內(nèi)網(wǎng)可訪問后,想要外網(wǎng)的小伙伴訪問本機(jī),可通過以下2種方法:
1) 端口映射
2) 內(nèi)網(wǎng)穿透
2.1 端口映射
前提條件:擁有路由器設(shè)置權(quán)限。
在對外的路由器中設(shè)置一條端口映射規(guī)則,訪問外部IP地址時跳轉(zhuǎn)到局域網(wǎng)機(jī)器上。具體操作這里不闡述。
2.2 內(nèi)網(wǎng)穿透
在公司內(nèi)開發(fā)web應(yīng)用時,不是所有人都可以申請端口映射的權(quán)限,所以這時候就要有個內(nèi)網(wǎng)穿透的解決方案了。
網(wǎng)絡(luò)上提供內(nèi)網(wǎng)穿透的應(yīng)用有很多,這里使用的是花生殼(官網(wǎng):http://hsk.oray.com/)。
示例:
注意:微信OAuth2.0進(jìn)行域名跳轉(zhuǎn)時會加上端口號,此時域名端口為80,本機(jī)端口為8081,跳轉(zhuǎn)后的地址為域名:8081會顯示錯誤。解決方法只需要設(shè)置本機(jī)web應(yīng)用的端口也為80即可。
運(yùn)行圖
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
C# Socket連接請求超時機(jī)制實(shí)現(xiàn)代碼分享
這篇文章主要介紹了C# Socket連接請求超時機(jī)制實(shí)現(xiàn),下面提供代碼分享,大家可以參考使用2013-12-12C#基于Extension Method(擴(kuò)展方法)獲得文件大小的方法
這篇文章主要介紹了C#基于Extension Method(擴(kuò)展方法)獲得文件大小的方法,實(shí)例分析了C#擴(kuò)展方法的定義與文件操作的相關(guān)技巧,需要的朋友可以參考下2015-06-06C#開發(fā)Winform實(shí)現(xiàn)學(xué)生管理系統(tǒng)
這篇文章介紹了C#開發(fā)Winform實(shí)現(xiàn)學(xué)生管理系統(tǒng)的項目案例,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05