這個標題寫的我相當混亂,怎麼看都是四不像。因爲這篇文間涉及的東西的確有點凌亂,
不過目的還比較清晰的。先說說目的
1、 最終目的是實現跨域,跨域的目的是爲了前後端完全分離,這樣前端(手機(app)、電腦(純html+JS))同後臺只通過JSON數據轉遞,佈局、控件什麼都是前端自己的事,後端只提供數據
2、 開發過程中的調試斷點問題,前端斷點由前端開發工具設置這沒有什麼問題,但前端向後臺調用數據時,比較麻煩,
2.1 我這裏用的是 Visual Studio2015 的開發環境,
2.2 電腦(純html+JS) 和 後臺同臺機子開發、運行,該怎麼斷怎麼斷也沒有什麼問題
2 .3 手機端的調試時.要怎麼斷,也就是這篇文章要解決的第二點
3、順帶解決外網訪問內網的WEB服務器的功能,
最終達到效果是,用VS開發後臺並設置斷點,
如果你用手機訪問你本機的外網IP,Vs的斷點會是有效的
下圖描述了本文中涉及的硬件與軟件及他們之間的關係
1、 兩個路由的設置
a) 路由1設置虛擬服務器,指向路由2
i. 虛擬服務器添加並設置外部端口(90)、內部端口(80)、IP地址(192.168.1.100)
ii. 虛擬服務器添加並設置外部端口(9090)、內部端口(8080)、IP地址(192.168.1.100)
iii. 之所以外部端口設置90、9090,請看最後的注意點
b) 路由2設置,指向計算機
i. 虛擬服務器添加並設置外部端口(80)、內部端口(80)、IP地址(192.168.2.100)
ii. 虛擬服務器添加並設置外部端口(8080)、內部端口(8080)、IP地址(192.168.2.100)
2、 設置外網訪問
a) iis 設置(Web站點,端口爲80)
i. 進入IIS
ii. 選擇網站,點擊右鍵-->編輯綁定-->添加本機局域網IP,如192.168.2.100
iii. 說明:路由的轉發規則將會指向192.168.2.100
b) Visual Studio後臺項目端口爲8080 如產生的端口爲http://localhost:8080/
i. 打開applicationhost.config
1. vs2013以前的在 我的文檔\IISExpress\config
2. vs2015在項目目錄\.vs\config
ii. 找到8080端口的所在,找到
<bindings>
<binding protocol="http"bindingInformation="*:8080:localhost" />
</bindings>
iii. 增加一條<binding protocol="http"bindingInformation="*:8080:192.168.2.100" />
3、 防火牆設置
a) 在控制面板\系統和安全\Windows 防火牆中點擊“高級設置”
b) 入站規則設置新建規則,選擇端口,分別設置80和8080
4、 8080是visualstudio項目,產生是在iisExpress下,如果出現Bad Request - Invalid Hostname,則用管理員身份運行cmd,然後運行以下語句
a) netsh http add urlacl url=http://192.168.2.100:8080/ user=everyone
5、 注意點:
a) 如果要輸入外網可訪問,在確認你的寬帶給你的外網IP,隨便百度一下“本機IP”上面顯示的就是你的外網IP,看看你路由1上的IP,如果IP不同,那你的就是運營商給你的內網IP,在同WIFI環境下,你在手機瀏覽器輸入你運營商給你的內網IP實現斷點也是可以的,但外網IP是訪問不到的,
b) 如果你使用的是外網IP,在路由1,也就是和光貓連接的路由,儘量使用非8打頭的端口號,因爲很多運營商是屏蔽80 8080之類常用端口的,