iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 8
0
自我挑戰組

全端工程師的日常挑戰三十日系列 第 8

讓 IIS EXPRESS 的網站允許外部連接(allow remote access)

  • 分享至 

  • xImage
  •  

讓 IIS EXPRESS 的網站允許外部連接(allow remote access)

讓 IIS EXPRESS 的網站可以被對本機以外提供服務

前端、行動裝置再加上愈來愈多的 IOT 相關應用出現,後端工程師最大的功能大概就是提供 API 了吧(^^||)

透過將開發用的 IIS EXPRESS 直接用來驗證結果是否合乎預期,就能減少頻繁地部署程式到實體 IIS 上的時間跟動作,這樣E一來又可以查更多bug(大誤)

利用這樣的方式讓在同網路環境的其他裝置可以直接連進來,甚至還可以直接 attach IIS EXPRESS 進行 debug,聽起來是不是很誘人?!

NOTE:這適合開發人員自行測試 debug 用,如果要跟其他裝置整合還是應該透過 IIS 部署

1. 設定 HTTP.sys(Hypertext Transfer Protocol Stack )

  • IIS 6 時開始用來取代 Windows Sockets API
  • HTTP.SYS 是 IIS 的核心元件,用來處理 Http request
  • 在 IIS 建立新應用程式集區(application pool)時,會自動在 http.sys 註冊集區以用來識別.

1-1. 以管理者身份開啟命令提示字元( command line)

cmd

1-2. 取得本機內網 ip

ipconfig

ip

1-3. 取得 IIS EXPRESS 站台 PORT

  • 方法1:專案設定

port2

  • 方法2:IIS EXPRESS 快顯視窗中

port1

1-4. 使用 netsh本機 IP站台 port 加入 URL 保留區( access control list)

netsh http add urlacl url=http://192.168.31.102:10777/ user=everyone

added

1-5. 檢查設定(optional)

netsh http show urlacl

刪除設定(if need)

如果已經測試完畢,才需要進行刪除

netsh http delete urlacl url=http://192.168.31.102:10777/

2. 修改 IIS EXPRESS 設定

2-1. IISEXPRESS 8.X (VS 2013) 以前

%USERPROFILE%\Documents\iisexpress\config\applicationhost.config

2-2. IIS Express 10(VS 2015)

改放在專案下的 .vs\ocnfig 資料夾中

%USERPROFILE%\Documents\Visual Studio 2015\Projects\TestExceptional\.vs\config\applicationhost.config

2-3. 加上 binding

用 port 搜尋,複製現有的,把 `localhost` 改為 `本機內網 IP`

binding

3. 開放防火牆的特定連接埠(port)

3-1.開始 搜尋 wf.msc

wf.msc

3-2. 新增 inbound 規則

newrule

3-3. 建立 port 規則

PORT

3-4. 使用 TCP特定 port

TCP

3-5. 選擇 allow the connect

ALLOW

3.6. 預設即可

WHEN

3-7. 建立規則名稱

NAME

4. 效果

  • 修改前(無法存取 IIS EXPRESS 站台)

cannotaccess

  • 修改後(可以存取 IIS EXPRESS 站台)

access

參考資料

  1. MSDN http https
  2. MSDN-IIS EXPRESS
  3. Nestsh commands for HTTP
  4. VS2015的IISEXPRESS 10的APPLICATIONHOST.CONFIG置叨位
  5. Access IIS Express from another machine

上一篇
網路輸入資料,按 tab 鍵,為什麼亂跳?!
下一篇
用 Markdown 與 Reveal.js 來製作簡報
系列文
全端工程師的日常挑戰三十日31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言