تمكّن الأداة المساعدة لخط الأوامر البسيط والعملي لتمكين مطوري .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 المتكاملة (انظر العدد #).
إنها تتصرف بحركة HTTP على localPort إلى proxyPort على جميع واجهات الشبكة المتاحة ، كما أنها تغير أصل رأس المضيف ، مما يسمح لك باختبار تطبيقات الويب التي تستضيفها IIS Express على مختلف الأجهزة البعيدة (الأجهزة المحمولة ، أجهزة سطح المكتب الأخرى ، إلخ).
إذا كنت بحاجة إلى الوصول إلى المضيف الأصلي الذي يطلبه المتصفح ، فستتضمن رؤوس الطلبات رؤوس X-Forward. في ASP.NET ، سيحتوي Request.Headers["x-forwarded-host"] على المضيف المطلوب.
يلف الأداة المساعدة لخط الأوامر HTTP-Proxy. تم إنشاء شعار HTTP-Proxy الأصلي بواسطة Diego Pasquali.
إذا وجدت هذا الريبو مفيدًا ، فالرجاء إعطائه نجمًا ، وتغريده وتؤيدني على LinkedIn:
أتلقى الكثير من الأسئلة من الأشخاص الذين يتعلمون فقط القيام بتطوير الويب أو ببساطة أتطلع إلى حل مشكلة محددة للغاية يتعاملون معها. على الرغم من أنني سأجيب على بعضهم لصالح المجتمع ، يرجى فهم أن المصدر المفتوح هو جهد مشترك ، وهو بالتأكيد لا يتعلق بالتجول في عمل الآخرين. في أماكن مثل Github ، هذا يعني تشجيع رفع القضايا ، ولكن الخروج مع PRS مفيدة أفضل بكثير. إذا كنت على استعداد لمشاركة بعض الكود الخاص بي مجانًا ، فأنا أفعل ذلك لعدة أسباب: التحديات الفكرية الخاصة بي ، والفخر ، والغطرسة ، والعناد للاعتقاد بأنني أحصل على مساهمة في التقدم الشائع والحرية ، وما إلى ذلك. ربما لا يكون رفاهك الخاص أحد هذه الأسباب. أنا لست في مجال تقديم استشارات مجانية ، لذلك إذا كنت بحاجة إلى مساعدتي لحل مشكلتك المحددة ، فهناك رسوم لذلك.
في 24 فبراير 2022 غزت روسيا أوكرانيا بشكل غير قانوني. هذا هجوم غير مبرر وغير مبرر على سيادة بلد مجاور ، ولكنه أيضًا إهانة مفتوحة للسلام والاستقرار الدوليين التي لديها القدرة على الانحطاط إلى حدث نووي يهدد بوجود الإنسانية. أنا مواطن روماني (الاتحاد الأوروبي) ، لكنني أقف مع أوكرانيا وأنا أفعل كل ما في وسعي لوقف هذا الجنون. إليك كيف يمكنك إظهار دعمكم.
ترخيص ISC.