2023年9月12日 星期二

讓 ngrok 進到 IIS Express 偵錯

之前玩 LINE Bot 有用 ngrok ,那時就覺得這玩意真是厲害方便,讓開發 web hook 很舒服,

這次接第三方 API,想說ngrok 一陣子沒玩了,就來玩一下



ngrok 安裝下載及文件,可以直接到官網參考

官網: https://ngrok.com

官網下載: https://ngrok.com/download

官網文件: https://ngrok.com/docs


不過安裝的部分我這邊卡了一下,原本想說 windows 安裝直接使用下載的執行檔安裝即可,沒想到

既然裝不起來,後來還是使用了 choco 才裝起來



注意,這邊使用 choco 來安裝是使用 powershell admin ,安裝中間或詢問直接輸入 y 即可




安裝後,可以使用指令 ngrok -v 來查看版本


由於我這邊是使用免費版的,所以一次僅能啟動一個監聽服務,且服務關閉後再次啟動後其對外的網址

會是不同的,若是使用升級版的應該會有固定 domain


再來說說asp.net mvc 專案,首先asp.net mvc 開發時專案會提供http、https 兩個偵錯網址

在專案上按下「F4」,會跳出屬性頁,並且有URL 跟 SSL URL 兩個網址

若按下F5 偵錯,預設會啟動 https 的網址,而http 則需手動輸入



接著來到 ngrok 的設定,針對 http 網址可以如下設定

ngrok http 37563 --host-header="localhost:37563"


輸入後成功後會跑出如下畫面


forwarding 代表是對外的網址,輸入後會看到剛指定的 localhost 畫面


其中 web interface : http://127.0.0.1:4040,可以檢視透過 forwarding 網址進來的 request

而 forwarding 網址是動態的,每次啟動都是一個新的,若要停止服務則需在剛的 cmd 畫面輸入 Ctrl + C



若此時需要對應 iis express 的 https localhost ,可以使用如下指令,比較特別需要使用 rewrite

ngrok http --host-header=rewrite https://localhost:44311


輸入後執行




另外,若執行相關指令出現以下訊息文字,那代表可能已經有正在運作通道,需要先停用

ngrok authentication failed: Your account is limited to 1 simultaneous ngrok agent session.


但發現按下 「Ctrl + C 」後,重新執行指令依然還是有以上錯誤訊息,可以再使用以下指令清除

taskkill /f /im ngrok.exe



【參考】

沒有留言:

張貼留言