asp.net - टनलिंग के माध्यम से इंटरनेट पर लोकलहोस्ट को एक्सपोज़ करना(एनग्रोक का उपयोग करके): HTTP त्रुटि 400: खराब अनुरोध; मेजबान का नाम अमान्य




visual-studio-2012 asp.net-web-api (4)

प्रश्न के पिछले संस्करणों से, यह है: स्थानीय होस्ट के बजाय आईपी पते के साथ वेबसाइट ब्राउज़ करें , जो कि मैंने अब तक क्या किया है, इसकी बहुत रूपरेखा है ... मुझे स्थानीय आईपी काम कर रहा है। तब मुझे एनक्रोच मिला, और जाहिर है मुझे आईपी के माध्यम से कनेक्ट करने की आवश्यकता नहीं है।

मैं जो करने की कोशिश कर रहा हूं वह इंटरनेट पर लोकलहोस्ट पर चलने वाली मेरी वेबसाइट को उजागर करता है। मुझे एक उपकरण मिला जो ऐसा करेगा: ngrok।

विज़ुअल स्टूडियो में वेबसाइट चलाने पर, वेबसाइट लोकलहोस्ट / पोर्ट # पर शुरू होती है। मैं कमांड लाइन में "ngrok http port #" कमांड चलाता हूं। सब कुछ ठीक लगने लगता है। मैं कुछ URL उत्पन्न करता हूं, और ngrok निरीक्षण url (लोकलहोस्ट: 4040) काम करता है।

एकमात्र समस्या यह है कि जब मैं जनरेट किए गए URL पर जाता हूं, तो मुझे HTTP त्रुटि 400: खराब अनुरोध अमान्य होस्टनाम मिलता है। यह एक अलग त्रुटि है जब मैं "ngrok http गलत नंबर #" चलाता हूं, जो एक होस्ट है जिसे त्रुटि नहीं मिली है ... इसलिए मुझे लगता है कि कुछ अच्छा हो रहा है। मैं अभी नहीं बता सकता ...

क्या कोई ऐसा कदम है जो मैं अपनी साइट को इंटरनेट पर टनलिंग सेवा के माध्यम से उजागर करने में याद कर रहा हूं? अगर वहाँ है, तो मैं इसे ngrok प्रलेखन में नहीं ढूँढ सकता।


इस समस्या का समस्या निवारण के साथ निवारण करें। असंगत शब्दों में, कुछ अनुप्रयोगों को गुस्सा आता है जब वे एक अलग होस्ट हेडर को उम्मीद से देखते हैं।

निम्नलिखित कमांड को चलाने से समस्या ठीक होनी चाहिए:

ngrok http [port] -host-header="localhost:[port]"

कदम।

  1. अपने कंसोल पर ngrok.exe डायरेक्टरी से कमांड चलाएँ। ngrok http पोर्ट यानी ngrok http 80 https://www.screencast.com/t/oyuEPlR6Z सेट

  2. Ngrok अपने अनुप्रयोग के लिए यूआरएल।

यह आपके आवेदन के लिए एक सुरंग बनाएगा।

धन्यवाद ।


मेरे लिए सबसे सरल बात iisexpress-proxy + एनरोक का उपयोग करना था।

पहले मैं iisexpress-proxy साथ विश्व स्तर पर iisexpress-proxy स्थापित करता iisexpress-proxy

npm install -g iisexpress-proxy

फिर मैं इसके साथ अपनी लोकलहोस्ट को प्रॉक्सी करता हूं। उदाहरण के लिए कहो मेरी साइट 3003 पर चल रही है।

iisexpress-proxy 3003 to 12345 जहां 12345 नया http पोर्ट है जिसे मैं प्रॉक्सी करना चाहता हूं।

फिर मैं उस पर एनक्रोच चला सकता हूं।

./ngrok.exe http 12345

यह सिर्फ काम करता है! 😃

लेकिन मुझे लगता है कि यह केवल http साथ काम करता है। अभी मैं परीक्षण करने के लिए https का उपयोग नहीं करता, लेकिन भले ही यह काम करता हो, आमतौर पर यह हमेशा की तरह बहुत काम आता है।


यह मेरे लिए काम नहीं किया। आप निम्नलिखित कर सकते हैं:

IIS एक्सप्रेस के लिए

वीएस 2015 में: अपने प्रोजेक्ट में .vs\config\applicationhost.config फ़ोल्डर में जाएं

वीएस 2013 और उससे पहले: %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config

वह बंधन खोजें जो कहता है:

<binding protocol="http" bindingInformation="*:5219:localhost" />

मेरे लिए यह 5219 पोर्ट पर चलने वाला प्रोजेक्ट था

इसे बदलो

  <binding protocol="http" bindingInformation="*:5219:" />

IIS Express अब उस पोर्ट पर आने वाले सभी कनेक्शनों को स्वीकार कर लेगा।

नुकसान: आपको IIS एक्सप्रेस को व्यवस्थापक के रूप में चलाने की आवश्यकता है।

या आप Ngrok में होस्ट हेडर को फिर से लिख सकते हैं:

ngrok.exe http -host-header=rewrite localhost:5219




ngrok