ยูทิลิตี้บรรทัดคำสั่งที่ง่าย แต่ใช้งานได้จริงที่เปิดใช้งานนักพัฒนา. NET เพื่อทดสอบเว็บแอปพลิเคชันที่ให้บริการโดย IIS Express บนอุปกรณ์ระยะไกล
คุณเป็นผู้พัฒนา. NET สร้างเว็บแอปพลิเคชันมือถือหรือไม่? คุณเคยรู้สึกหงุดหงิดกับความจริงที่ว่าไม่มีวิธีง่ายๆที่จะเปิดใช้งาน IIS Express เพื่อรับการเชื่อมต่อจากอุปกรณ์ระยะไกลหรือไม่ ...
ไม่จำเป็นต้องติดตั้ง iisexpress-proxy หากคุณใช้ npm@^5.2.0 ; คุณสามารถเรียกใช้กับ npx หากคุณใช้ npm รุ่นเก่าคุณมักจะต้องการ iisexpress-proxy ที่ติดตั้งเป็นโมดูลทั่วโลก:
npm install -g iisexpress-proxyหมายเหตุ: คุณต้องติดตั้ง node.js
หากคุณใช้ npm@^5.2.0 :
npx iisexpress-proxy@latest localPort to proxyPort หรือถ้าคุณติดตั้ง iisexpress-proxy เป็นโมดูล npm ทั่วโลก:
iisexpress-proxy localPort to proxyPortตัวอย่างเช่นหากพอร์ต IIS Express ของแอปพลิเคชันของคุณคือ 51123 ให้เรียกใช้สิ่งนี้ในพรอมต์คำสั่ง:
iisexpress-proxy 51123 to 3000
โปรแกรมจะแสดงรายการที่อยู่ภายนอกที่คุณสามารถใช้สำหรับการทดสอบแอปพลิเคชันของคุณบนอุปกรณ์ระยะไกล
iisexpress-proxy ค่าเริ่มต้นเป็น HTTP ดังนั้นหากแอปพลิเคชันของคุณใช้งาน HTTPS จากนั้นรวม URL แบบเต็ม
iisexpress-proxy https://localhost:51123 to 3000 โปรดทราบว่าสิ่งนี้จะยุติ HTTPS บนเครื่องปลายทางของคุณเชื่อมต่อกับพอร์ต 3000 โดยใช้ HTTP ไม่ใช่ HTTPS
หากคุณต้องการให้พร็อกซีให้บริการ HTTPS คุณสามารถระบุเป้าหมายด้วย URL เต็มรูปแบบได้เช่นกัน
iisexpress-proxy https://localhost:51123 to https:// * :3000 สิ่งนี้จะสร้างใบรับรองที่ลงนามด้วยตนเองและใช้งาน OpenSSL จะต้องอยู่ใน PATH เพื่อให้สิ่งนี้ทำงานได้
หากคุณอยู่ใน Windows วิธีที่ง่ายที่สุดในการรับ OpenSSL คือการใช้ Git Bash ที่มาพร้อมกับการติดตั้งไว้ล่วงหน้า
หากคุณต้องการผูกกับอินเทอร์เฟซเฉพาะแทนทั้งหมดให้ใช้ IP ใน URL เป้าหมายเช่น https://10.0.0.1:3000 โปรดทราบว่าส่วนขวามือไม่สามารถเป็นชื่อโดเมนได้
นอกจากนี้คุณยังสามารถใช้ iisexpress-Proxy เพื่อเปิดเผยอินสแตนซ์ของเซิร์ฟเวอร์ IIS ที่ทำงานบน โฮสต์อื่น ที่สามารถเข้าถึงได้ผ่าน VPN เช่นนี้:
iisexpress-proxy host:port to proxyHost:proxyPortตัวอย่างเช่นลองพิจารณาสถานการณ์นี้:
โดยเรียกใช้สิ่งนี้ในพรอมต์คำสั่ง:
iisexpress-proxy 192.168.96.3:5000 to 192.168.0.102:3000... คุณจะสามารถเข้าถึงแอปพลิเคชันได้โดยชี้อุปกรณ์มือถือไปที่ 192.168.0.102:3000
สำหรับตัวอย่างขั้นสูงอื่นให้พิจารณาว่าคุณอยู่ใน WiFi สาธารณะและไม่ต้องการเปิดเผยเซิร์ฟเวอร์ DEV ของคุณต่อสาธารณะ คุณสามารถตั้งค่า VPN ระหว่างแล็ปท็อปของคุณและโทรศัพท์ของคุณและเปิดเผยเซิร์ฟเวอร์บนอินเตอร์เฟส VPN เท่านั้น (10.0.0.1) จากนั้นคุณสามารถเรียกใช้
iisexpress-proxy 5000 to 10.0.0.1:8080... และเปิด http://10.0.0.1:8080 บนโทรศัพท์ของคุณเมื่อเปิดใช้งาน VPN ในขณะที่ผู้ใช้ WiFi รายอื่นจะไม่สามารถเชื่อมต่อได้
หมายเหตุ: ฟังก์ชั่นนี้ถูกเพิ่มที่ v1.1.0 (เปิดตัว 10/21/2015)
การสนับสนุน WebSocket ถูกเพิ่มใน v1.4.0 โดย Stan Hebben - ดูรายละเอียด PR #11
หากคุณไม่ต้องการใช้ใบรับรองที่สร้างขึ้นคุณสามารถให้ใบรับรองและคีย์ของคุณเองโดยใช้ใบรับรอง cert / key :
iisexpress-proxy https://localhost:51123 to https:// * :3000 --key=./your-key.pem --cert=./your-cert.pemหมายเหตุ: ฟังก์ชั่นนี้ถูกเพิ่มที่ v1.7.0 (เปิดตัว 02/14/2022)
iisexpress-proxy ไม่ทำงานในสถานการณ์ที่เกี่ยวข้องกับการรับรองความถูกต้องของ Windows ในตัว (ดูปัญหา #Here)
มันเป็นพร็อกซ์การรับส่งข้อมูล HTTP บน localPort เป็น proxyPort ในอินเทอร์เฟซเครือข่ายทั้งหมดที่มีอยู่และยังเปลี่ยนที่มาของส่วนหัวโฮสต์ช่วยให้คุณทดสอบเว็บแอปพลิเคชันที่โฮสต์โดย IIS Express บนอุปกรณ์ระยะไกลต่างๆ (อุปกรณ์มือถือเดสก์ท็อปอื่น ๆ )
หากคุณต้องการเข้าถึงโฮสต์ดั้งเดิมที่เบราว์เซอร์ร้องขอส่วนหัวคำขอจะรวมส่วนหัวของ X-Forward ใน asp.net, Request.Headers["x-forwarded-host"] จะมีโฮสต์ที่ร้องขอ
ยูทิลิตี้บรรทัดคำสั่งนี้ห่อหุ้ม http-proxy โลโก้ HTTP-Proxy ดั้งเดิมถูกสร้างขึ้นโดย Diego Pasquali
หากคุณพบว่า repo นี้มีประโยชน์โปรดให้ดาวทวีตเกี่ยวกับเรื่องนี้และรับรองฉันใน LinkedIn:
ฉันได้รับคำถามมากมายจากผู้คนเพียงแค่เรียนรู้ที่จะพัฒนาเว็บหรือเพียงแค่มองหาปัญหาที่เฉพาะเจาะจงมากที่พวกเขากำลังเผชิญอยู่ ในขณะที่ฉันจะตอบบางอย่างเพื่อประโยชน์ของชุมชนโปรดเข้าใจว่าโอเพนซอร์ซเป็นความพยายามที่ใช้ร่วมกันและไม่เกี่ยวกับการแบ็คแบ็คในงานของคนอื่นอย่างแน่นอน ในสถานที่เช่น GitHub นั่นหมายถึงการสนับสนุนปัญหาได้รับการสนับสนุน แต่การได้รับ PRS ที่มีประโยชน์นั้นดีกว่ามาก หากฉันเต็มใจที่จะแบ่งปันรหัสบางส่วนของฉันฟรีฉันทำด้วยเหตุผลหลายประการ: ความท้าทายทางปัญญาของฉันเองความภาคภูมิใจความเย่อหยิ่งความดื้อรั้นที่จะเชื่อว่าฉันนำการสนับสนุนความก้าวหน้าและเสรีภาพร่วมกัน ฯลฯ ความเป็นอยู่ที่ดีของคุณอาจไม่ใช่เหตุผลเหล่านั้น ฉันไม่ได้อยู่ในธุรกิจที่ให้คำปรึกษาฟรีดังนั้นหากคุณต้องการความช่วยเหลือในการแก้ปัญหาเฉพาะของคุณมีค่าธรรมเนียมสำหรับสิ่งนั้น
เมื่อวันที่ 24 กุมภาพันธ์ 2565 รัสเซียบุกยูเครนอย่างผิดกฎหมาย นี่คือการโจมตีที่ไม่ยุติธรรมและไม่ได้รับการพิสูจน์ในอำนาจอธิปไตยของประเทศเพื่อนบ้าน แต่ยังเป็นการดูหมิ่นสันติภาพและความมั่นคงระหว่างประเทศที่มีศักยภาพที่จะเสื่อมสภาพไปสู่เหตุการณ์นิวเคลียร์ที่คุกคามการดำรงอยู่ของมนุษยชาติ ฉันเป็นพลเมืองโรมาเนีย (สหภาพยุโรป) แต่ฉันยืนอยู่กับยูเครนและฉันกำลังทำทุกอย่างในอำนาจของฉันเพื่อหยุดความบ้าคลั่งนี้ นี่คือวิธีที่คุณสามารถแสดงการสนับสนุนของคุณ
ใบอนุญาต ISC