IIS एक्सप्रेस में बाहरी अनुरोध कैसे सक्षम करें?


466

मैं IIS एक्सप्रेस में दूरस्थ अनुरोध कैसे सक्षम कर सकता हूं? स्कॉट गुथ्री ने लिखा कि यह संभव है लेकिन उन्होंने यह नहीं बताया कि कैसे।


25
इसके लिए एक मुफ़्त VS एक्सटेंशन है जिसे हमने Visualstudiogallery.msdn.microsoft.com/…
जिम डब्ल्यू का कहना है कि मोनिका

@ जिम जिम, क्या आप प्लगइन के निर्माता हैं? कृपया आप बता सकते हैं कि सॉफ्टवेयर इंजीनियरिंग का यह चमत्कार कैसे काम करता है?
इयान वॉर्बर्टन

@IanWarburton इसे चमत्कार कहने के लिए धन्यवाद! यह एक रिवर्स प्रॉक्सी सर्वर है।
जिम डब्ल्यू का कहना है कि मोनिका

@JWW इसे बनाने के लिए धन्यवाद।
इयान वारबर्टन

@JimW मैंने आपका प्लगइन आज़माया और जैसा आपने ट्यूटोरियल में कहा था, वैसा ही सब कुछ किया। लेकिन मैं अपने लोकलहोस्ट को
चिन्हित

जवाबों:


403

IIS टीम साइट पर अब एक ब्लॉग पोस्ट है जो यह बता रहा है कि IIS एक्सप्रेस पर दूरस्थ कनेक्शन कैसे सक्षम करें । यहाँ उस पोस्ट का संक्षिप्त भाग संक्षेप में प्रस्तुत किया गया है:

Vista और Win7 पर, एक प्रशासनिक प्रॉम्प्ट से निम्न आदेश चलाएँ:

netsh http add urlacl url=http://vaidesg:8080/ user=everyone

XP के लिए, पहले Windows XP सर्विस पैक 2 सहायता उपकरण स्थापित करें। फिर एक प्रशासनिक प्रॉम्प्ट से निम्न कमांड चलाएँ:

httpcfg set urlacl /u http://vaidesg1:8080/ /a D:(A;;GX;;;WD)


121
503 त्रुटि के मामले में, यह देखें: stackoverflow.com/questions/5442551/…
deerchao

5
क्या किसी होस्टनाम netshपर कनेक्शन देने की आज्ञा है ?
कर्नल पैनिक

33
सिर्फ रिकॉर्ड के लिए, यदि आपके पास गैर अंग्रेजी भाषा में विंडोज मशीन है, तो user={PARAM_USER}आपकी भाषा में पैरामीटर होगा।
GoRoS

7
Url- पैरामीटर (जैसे url = http: // *: 8080 /) में वाइल्डकार्ड का उपयोग करने से होस्टनाम और कंप्यूटर के आईपी पते दोनों के लिए कनेक्शन काम करेगा।
एंडर्स

2
यदि कमांड विफल हो जाती है (शायद 1789 त्रुटि) ध्यान रखें कि कमांड आपके पीसी भाषा में उपयोगकर्ता के लिए उम्मीद करता है। इसलिए यदि आपका पीसी उदाहरण के लिए पुर्तगाली में है, तो user=todosइसके बजाय उपयोग करें user=everyone
विटोर कैनोवा

348

तीन बदलाव हैं जिन्हें आपको करने की आवश्यकता हो सकती है।

  1. आईआईएस एक्सप्रेस को खुद को सभी आईपी पते और होस्टनाम से बांधने के लिए कहें। आपकी .configफाइल में। आमतौर पर:
    • वीएस 2015: $(solutionDir)\.vs\config\applicationhost.config
    • <वीएस 2015: %userprofile%\My Documents\IISExpress\config\applicationhost.config

अपनी साइट के बाध्यकारी तत्व का पता लगाएं, और जोड़ें

    <binding protocol="http" bindingInformation="*:8080:*" />
  1. 'Http.sys' नामक विंडोज के बिट को सेटअप करें। एक व्यवस्थापक के रूप में, कमांड चलाएँ:
    netsh http add urlacl url=http://*:8080/ user=everyone

जहां everyoneएक विंडोज़ समूह है। "टाउट ले मोंडे" जैसी जगहों के समूहों के लिए दोहरे उद्धरण चिह्नों का उपयोग करें।

  1. Windows फ़ायरवॉल के माध्यम से IIS एक्सप्रेस की अनुमति दें।

    उन्नत सुरक्षा / इनबाउंड नियम / नए नियम के साथ प्रारंभ / विंडोज फ़ायरवॉल ...

    कार्यक्रम %ProgramFiles%\IIS Express\iisexpress.exe
    या पोर्ट 8080 टीसीपी

अब जब आप शुरू करते हैं तो आपको iisexpress.exeएक संदेश देखना चाहिए जैसे कि

सफलतापूर्वक पंजीकृत URL "http: // *: 8080 /" साइट के लिए "हैलो वर्ल्ड" एप्लिकेशन "/"


22
नायब यदि आप Windows का स्थानीय संस्करण पैरामीटर चल रहे हैं users=everyoneके लिए netsh(दूसरे चरण) त्रुटि 1789 समाधान अनुवाद करने के लिए है कारण हो सकता है everyoneअपनी भाषा में इसी समूह का नाम है।
mflodin

5
उस बंधन को स्वीकार करने के लिए आपको विज़ुअल स्टूडियो प्रोजेक्ट कैसे मिलता है? प्रोजेक्ट गुणों में, जहाँ आप निर्दिष्ट करते हैं Project Url, अगर मैं होस्टनाम के लिए एक तारांकन चिह्न दर्ज करता हूं तो यह एक त्रुटि देता है। अगर मैं कुछ और दर्ज करता हूं, तो यह एक नई वर्चुअल निर्देशिका बनाने की कोशिश करता है। यह Application.config में प्रविष्टि से लिंक नहीं करता है।
ट्रेवर इलियट

20
इसे Visual Studio में कार्य करने के लिए, आपको चरण 1 bindingInformation="*:8080:hostname"और चरण 2 में अपने कंप्यूटर के होस्टनाम का उपयोग करना होगा url=http://hostname:8080/, और वेब टैब सेट प्रोजेक्ट Url पर अपने Visual Studio वेब प्रोजेक्ट गुणों में http://hostname:8080/*यदि आप पहले से ही एक बनाया है, तो urlacl को हटा दें ; यदि आपके पास दोनों हैं तो यह काम नहीं करेगा। अंत में, आप अपने वेब ब्राउजर में जाने वाले URL को होस्टनाम का संदर्भ देना होगा, न कि लोकलहोस्ट का।
जो डेल

5
मुझे बाइंडिंग तत्व में एक लोकलहोस्ट लाइन भी मिलनी थी, अन्यथा विजुअल स्टूडियो 2013 ने एक डुप्लिकेट साइट प्रविष्टि बनाने की कोशिश की। जैसे:<binding protocol="http" bindingInformation="*:8080:localhost" />
क्रिश्चियनप

3
मुझे विजुअल स्टूडियो को व्यवस्थापक के रूप में चलाने की भी आवश्यकता थी, लेकिन यह उत्तर सबसे गहन था।
dlsso

127

मुझे याद है कि कुछ महीनों पहले इस वर्कफ़्लो को आज़माते हुए उसी समस्याओं में भागना पड़ा था।

यही कारण है कि मैंने विशेष रूप से इस तरह के परिदृश्य के लिए एक साधारण प्रॉक्सी उपयोगिता लिखी: https://github.com/icflorescu/iisexpress-proxy

IIS एक्सप्रेस प्रॉक्सी का उपयोग करना , यह सब काफी सरल हो जाता है - "netsh http जोड़ने के लिए urlacl url = vaidesg: 8080 / user = हर कोई" या अपने "Applicationhost.config" के साथ गड़बड़ करने की कोई आवश्यकता नहीं है।

बस इसे कमांड प्रॉम्प्ट में जारी करें:

iisexpress-proxy 8080 to 3000

… और फिर आप अपने दूरस्थ उपकरणों को http: // vaidesg: 3000 पर इंगित कर सकते हैं ।

ज्यादातर समय सरल आईएस बेहतर है।


3
महान समाधान के लिए धन्यवाद!
ग्रीष्मकालीन-समय

1
और मैं जोड़ सकता हूँ कि इस तरह Node.js समाधान केवल वही हैं जो Azure पर मज़बूती से काम करते हैं, क्योंकि Azure एप्लिकेशनहोस्ट.कॉन्फ़िग फ़ाइल को ऑटो-जनरेट करता है और आपके बाध्यकारी परिवर्तनों को मिटा देता है।
TheHansinator

1
मैंने अपने मैक पर IIS एक्सप्रेस प्रॉक्सी का उपयोग करना शुरू कर दिया है, साथ ही एनक्रोच के बाद भी काम नहीं किया जैसा कि अपेक्षित था (क्योंकि मैंने IIS एक्सप्रेस कॉन्फ़िगरेशन हेरफेर की जरूरत नहीं थी)। बेहद सुविधाजनक! धन्यवाद।
कोडिंगआउटलाउड

1
यह अब तक का सबसे आसान उपाय है। अगर मुझे नहीं करना है तो मैं applicationhost.config के साथ गड़बड़ नहीं करना चाहता।
स्कालपिन

4
उत्कृष्ट समाधान! अब वापस जाने के लिए और उस गड़बड़ को पूर्ववत करें जिससे मैंने अपने IIS एक्सप्रेस को बनाया है।
मिच स्टीवर्ट

123

मेरे लिए कुछ भी काम नहीं किया जब तक कि मुझे iisexpress -xy नहीं मिला ।

व्यवस्थापक के रूप में कमांड प्रॉम्प्ट खोलें, फिर चलाएँ

npm install -g iisexpress-proxy

फिर

iisexpress-proxy 51123 to 81

आपके Visual Studio प्रोजेक्ट को स्थानीयहोस्ट पर खोला जाता है: 51123 और आप बाहरी IP पते पर पहुँचना चाहते हैं xxxx: 81

संपादित करें: मैं वर्तमान में उपयोग कर रहा हूं ngrok


7
दर्द रहित समाधान
bahadir

4
सबसे आसान समाधान मैं पा सकता था। शायद वेब-प्रॉक्सी जैसी किसी चीज़ के लिए पैकेज को फिर से नाम देना चाहिए क्योंकि आप इसे आगे बढ़ाने के लिए उपयोग कर सकते हैं iisexpress :)
मारियो

8
@xgp - हाय, मैं iisexpress -xy :-) का लेखक हूं। क्या आप इसे अंत में आपके लिए काम करने में कामयाब रहे हैं? आपको कमांड प्रॉम्प्ट को बंद या फिर से खोलना होगा, या दुर्लभ मामलों में ईवेंट को पुनरारंभ करना होगा। मुझे परियोजना पृष्ठ में एक पंक्ति ड्रॉप करें ( github.com/icflorescu/iisexpress-proxy ) यदि आपके पास और प्रश्न हैं और यदि मेरे पास समय है तो मैं मदद करने का प्रयास करूंगा।
इयोनुत-क्रिस्टियन फ्लोरेस्कु

1
इसका उपयोग करने के लिए और अपनी तरह के शब्दों के लिए आप सभी को धन्यवाद :-)। @MarioTacke - हाँ, मुझे पता है, लेकिन अधिक लोग इसे सिर्फ Google-आईएनजी द्वारा खोजने में सक्षम हैं यदि इसे iisexpress -xy :-) कहा जाता है
Ionut-Cristian Florescu

1
Btw, यह विंडोज प्रमाणीकरण के साथ काम नहीं करता है।
टॉम

35

इस के लिए एक पहेली के रूप में:

netsh http add urlacl url=http://vaidesg:8080/ user=everyone

यह केवल विंडोज के अंग्रेजी संस्करणों पर काम करेगा। यदि आप एक स्थानीयकृत संस्करण का उपयोग कर रहे हैं, तो आपको "हर किसी" को किसी और चीज़ से बदलना होगा, उदाहरण के लिए:

  • डच संस्करण का उपयोग करते समय "Iedereen"
  • जर्मन संस्करण का उपयोग करते समय "जेडर"
  • हंगेरियन संस्करण का उपयोग करते समय "मिंडेंकी"

अन्यथा आपको एक त्रुटि मिलेगी (SDDL विफल, त्रुटि: 1332 बनाएँ)


33

एक अच्छा संसाधन एसएस के साथ विकास के समय पर काम कर रहा है स्कॉट हैसेलमैन द्वारा IISExpress के साथ आसान है

पोर्ट 80 पर बाहरी सेवा देने के लिए IIS एक्सप्रेस प्राप्त करना अनुभाग के बाद क्या है


यह ब्लॉग पोस्ट "IISExpressWeb.exe" पोर्ट 80 को अलग करने की सिफारिश करता है। IIS एक्सप्रेस के वर्तमान संस्करण में इस नाम के एक भाग का अभाव है - केवल IISExpress.exe और IISExpressTray.exe है। कनेक्शन को अलग करना या तो बाहर से एक कनेक्शन को रोकता है; प्रक्रिया प्रतिबंध को समाप्त करने से कनेक्शनों में अनुमति मिलती है। लक्ष्य के लिए उचित .exe क्या है?
क्रिस मोशचिनी

33

यदि आप Visual Studio के साथ काम कर रहे हैं, तो IP-Adress पर IIS-Express का उपयोग करने के लिए इन चरणों का पालन करें:

  1. अपने होस्ट आईपी-एड्रेस प्राप्त करें: ipconfigविंडोज कमांड लाइन में
  2. के लिए जाओ

    $(SolutionDir)\.vs\config\applicationHost.config
  3. खोज

    <site name="WebApplication3" id="2">
       <application path="/" applicationPool="Clr4IntegratedAppPool">
          <virtualDirectory path="/" physicalPath="C:\Users\user.name\Source\Repos\protoype-one\WebApplication3" />
       </application>
       <bindings>
         <binding protocol="http" bindingInformation="*:62549:localhost" />
       </bindings>
    </site>
  4. जोड़ें: <binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
    अपने आईपी-एड्रेस के साथ

  5. अपने विजुअल स्टूडियो को प्रशासक के अधिकारों के साथ चलाएँ और सब कुछ काम करना चाहिए
  6. यदि आप रिमोट से कनेक्ट करने का प्रयास करते हैं तो शायद कुछ फ़ायरवॉल मुद्दों की तलाश करें

20

मैंने इसे Visual Studio Professional 2015 में "Conveyor by Keyoti" की स्थापना के साथ हल किया है। Conveyor एक पोर्ट (45455) के साथ एक REMOTE पता (आपका IP) उत्पन्न करता है जो बाहरी अनुरोध को सक्षम करता है। उदाहरण:

यहाँ छवि विवरण दर्ज करें

कन्वेयर आपको अपने नेटवर्क पर बाहरी टैबलेट और फोन से या एंड्रॉइड एमुलेटर से (बिना) वेब अनुप्रयोगों का परीक्षण करने की अनुमति देता है http://10.0.2.2:<hostport> )

चरण निम्नलिखित लिंक में हैं:

https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti


@ स्पेनियन कृपया उत्तर में दिए लिंक का अनुसरण करें और वहां एक प्रश्न पूछें, हम आपकी सहायता कर सकते हैं।
जिम डब्ल्यू का कहना है कि मोनिका

वर्कस्ट !!, मैं अन्य सभी समाधानों को साबित करता हूं (एप्लिकेशनहोस्ट.कॉन्फ़िग, नेटश, आईपीवी 6 एड्रेस .. बदलें) और कुछ भी नहीं, लेकिन आखिरकार यह काम करता है, केवल छोटा मुद्दा यह था कि आईपी पते को गलत तरीके से कॉन्फ़िगर किया गया है, लेकिन गंभीर समस्या नहीं है।
आयन

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

मुझे विश्वास नहीं हो रहा है, यह काम करता है !!! इतना सरल, बहुत अच्छा !!! मैंने पिछले 5 घंटे केवल खाली समाधानों को देखने के लिए बिताए और अंत में मैंने इसे फव्वारा दिया!
Ziggy192

10

यदि आपने कर्नल पैनिक के उत्तर की कोशिश की है, लेकिन विजुअल स्टूडियो में काम नहीं करता है, तो यह कोशिश करें:

<binding />अपने IIS एक्सप्रेस कॉन्फ़िगरेशन में एक और जोड़ें

<bindings>
    <binding protocol="http" bindingInformation="*:8080:localhost" />
    <binding protocol="http" bindingInformation="*:8080:hostname" />
</bindings>

अंत में, आपको विजुअल स्टूडियो को एडमिन के रूप में चलाना होगा


दुर्भाग्य से, यह मेरे लिए काम नहीं कर रहा है .. मैं अभी भी कनेक्शन से इनकार कर दिया जब मैं पोर्ट 8080 पर अपने स्थानीय आईपी का उपयोग करने की कोशिश
थॉमस Teilmann

@ThomasTeilmann, Visual Studio में, मुझे वेब एप्लिकेशन की संपत्तियों को खोलना था, और वेब टैब के तहत, स्थानीय होस्ट के बजाय वैकल्पिक होस्ट नाम का उपयोग करने के लिए "प्रोजेक्ट Url" बदलें।
सैम

@ThomasTeilmann, ओह, और मुझे लगता है कि आपको IP के बजाय होस्ट नाम से इसे ब्राउज़ करने की आवश्यकता है।
सैम

मैंने उस दोनों को भी आज़माया, वास्तव में, और यह बादल के उदाहरण के लिए काम नहीं करता है: / धन्यवाद हालांकि
थॉमस टिल्मन

यह मेरे लिए जवाब था (यानी व्यवस्थापक के रूप में वीएस चलाएं) - धन्यवाद @ ब्रूस। इसके अलावा मुझे अपनी फ़ायरवॉल सेटिंग्स को मैन्युअल रूप से ठीक करना पड़ा। मेरे मामले में (यानी परीक्षण कर रहा है कि मेरा iphone मेरे देव मशीन को ब्राउज़ कर सकता है) फ़ायरवॉल पर पोर्ट 8080 को खोलने से काम नहीं हुआ (हुह?) लेकिन आईपी (यानी स्कोप> लोकल आईपी = 10.0.0.0/24 = मेरे घर तक पहुंच खोलना) नेटवर्क) ने चाल चली।
इलियान

8

किसने मेरी मदद की, 'IISExpress' आइकन, 'सभी एप्लिकेशन दिखाएं' पर क्लिक करना सही था। फिर वेबसाइट का चयन करना और मैंने देखा कि यह किस aplicationhost.config का उपयोग करता है, और सुधार पूरी तरह से चला गया।

IISExpress कॉन्फ़िगरेशन


2
इस उत्तर ने मुझे एक और समाधान की ओर इशारा किया, applicationhost.config को संपादित करने के लिए : 55665: के बजाय *: 55665: लोकलहोस्ट
डेको

धन्यवाद @Deko - आपकी टिप्पणी, netsh कमांड के साथ कुछ अन्य उत्तरों में उल्लेखित है, इसने मेरे लिए काम किया।
मार्सेल पॉपेस्क्यू

8

यह मैंने http और https दोनों के साथ दूरस्थ पहुंच को सक्षम करने के लिए विजुअल स्टूडियो 2015 के साथ विंडोज 10 के लिए किया था:

पहला कदम आपके आवेदन को आपके आंतरिक आईपी पते से बांधना है। पता पाने के लिए cmd-> चलाएं ipconfig। फ़ाइल खोलें /{project folder}/.vs/config/applicationhost.configऔर तब तक नीचे स्क्रॉल करें जब तक आपको ऐसा कुछ न मिले:

<site name="Project.Web" id="2">
    <application path="/">
        <virtualDirectory path="/" physicalPath="C:\Project\Project.Web" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:12345:localhost" />
    </bindings>
</site>

के तहत दो नए बाइंडिंग जोड़ें bindings। आप चाहें तो HTTPS का उपयोग कर सकते हैं:

<binding protocol="http" bindingInformation="*:12345:192.168.1.15" />
<binding protocol="https" bindingInformation="*:44300:192.168.1.15" />

अपने फ़ायरवॉल में निम्न नियम जोड़ें, cmdव्यवस्थापक के रूप में एक नया प्रॉम्प्ट खोलें और निम्न आदेश चलाएँ:

netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=12345 profile=private remoteip=localsubnet action=allow

netsh advfirewall firewall add rule name="IISExpressWebHttps" dir=in protocol=tcp localport=44300 profile=private remoteip=localsubnet action=allow

अब Visual Studio को इस रूप में शुरू करें Administrator। वेब प्रोजेक्ट प्रोजेक्ट फ़ाइल पर राइट क्लिक करें और चुनें PropertiesWebटैब पर जाएं , और क्लिक करें Create Virtual Directory। यदि Visual Studio व्यवस्थापक के रूप में नहीं चलाया जाता है, तो यह संभवतः विफल हो जाएगा। अब सब कुछ काम करना चाहिए।

यहाँ छवि विवरण दर्ज करें


मेरे लिए काम किया! :) वहाँ भी एक अच्छा पोस्ट यहाँ है: blog.kloud.com.au/2017/02/27/...
Leniel Maccaferri

मैं कोई फायदा नहीं हुआ ngrok सहित सब कुछ करने की कोशिश की। इसने पहली कोशिश में काम किया।
kooldave98

5

इस सवाल का स्वीकृत उत्तर IIS एक्सप्रेस को वेबमैट्रिक्स के साथ काम करने के लिए एक गाइड है। मुझे यह मार्गदर्शिका तब अधिक उपयोगी लगी जब इसे वीएस 2010 के साथ काम करने की कोशिश की गई।

मैंने सिर्फ 3 और 4 के चरणों का पालन किया (IIS एक्सप्रेस को प्रशासक के रूप में चलाना) और इसे काम करने के लिए अपने फ़ायरवॉल को अस्थायी रूप से अक्षम करना पड़ा।


विज़ुअल स्टूडियो से डिबग करने की क्षमता खोने के लिए आपके द्वारा दिए गए निर्देश, जो कम से कम मेरे विचार में इसे व्यर्थ बनाता है - आईआईएस या किसी अन्य रिमोट सर्वर का उपयोग करना उतना ही अच्छा या बेहतर होगा (क्योंकि आप कम से कम आईआईएस पर दूरस्थ डीबगिंग सेटअप कर सकते हैं)। यदि IIS एक्सप्रेस को लोकलहोस्ट के बिना चलाने के लिए व्यवस्थापक विशेषाधिकार की आवश्यकता नहीं होती है तो यह काम करेगा। बहुत कष्टप्रद।
क्रिस मोसिनची

यह वही है जो मैं देख रहा था - धन्यवाद! मैं विज़ुअल स्टूडियो 2010 के साथ IIS एक्सप्रेस का उपयोग कर रहा हूं और मेरे LAN पर ASP.NET MVC3 एप्लिकेशन का परीक्षण करने जा रहा था, और इसके लिए मुझे काम करने की आवश्यकता थी :)
लास ईसाईजैन

5

आप अपने IIS एक्सप्रेस कॉन्फिगर को संशोधित करने, नए HTTP.sys नियमों को जोड़ने या एक व्यवस्थापक के रूप में विज़ुअल स्टूडियो चलाने के बजाय पोर्ट फ़ॉरवर्डिंग स्थापित करने का प्रयास कर सकते हैं।

मूल रूप से आपको IP:PORTअपनी वेबसाइट को अपनी मशीन पर किसी अन्य मुफ्त पोर्ट पर चलाने की जरूरत है , लेकिन स्थानीय नेटवर्क एडॉप्टर पर, लोकलहोस्ट पर नहीं।

बात यह है कि IIS एक्सप्रेस (विंडोज 10 पर कम से कम) का [::1]:portअर्थ है कि यह IPv6 पोर्ट पर सुनता है। आपको इसे ध्यान में रखना होगा।

यहां मैंने बताया कि मैंने यह काम कैसे किया है - http://programmingflow.com/2017/02/25/iis-express-on-extern-in.html

आशा है ये मदद करेगा।


मैं विंडोज 10 चला रहा हूं और लोकलहोस्ट को आईपीवी 6 से बांधना महत्वपूर्ण था। धन्यवाद!
टॉमसजज़ियालेक

जिस कंप्यूटर को मैं कॉन्फ़िगर करने की कोशिश कर रहा था, उसका एक और स्थानीय पता था। इसे "स्थानीय-देव" नाम दिया गया था। मुझे सिर्फ v4tov6 Hearport = 3000 connectaddress = स्थानीय-देव कनेक्टपोर्ट = 60000 को काम करने के लिए बाँधना था । शानदार पोस्ट, धन्यवाद!
अनिका

4

सबसे सरल और सबसे अच्छा तरीका जो मुझे मिला वह था उपयोग करने के लिए (सेटअप करने में 2 मिनट लगते हैं):

https://ngrok.com/

यह लोकलहोस्ट पर चलने वाली किसी भी चीज के साथ काम करेगा। बस साइनअप, थोड़ा बहाना चलाने के लिए और जो कुछ भी आप लोकलहोस्ट पर चलाते हैं वह सार्वजनिक URL हो जाता है जिसे आप कहीं से भी एक्सेस कर सकते हैं।

यह आपकी दूरस्थ टीम के साथी को सामान दिखाने के लिए अच्छा है, IIS सेटअप या फ़ायरवॉल के साथ कोई फ़िडलिंग नहीं। निष्पादन योग्य को समाप्त करने के लिए पहुँच को रोकना चाहते हैं।

ngrok authtoken xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

ngrok http -host-header=localhost 89230

यह मानते हुए कि 89230 आपका IIS एक्सप्रेस पोर्ट है

फ्री प्लान पर भी आप कई पोर्ट चला सकते हैं


1
कौन सोचता है कि मुझे इस तरह की कई प्रतिक्रियाओं के माध्यम से पढ़ना होगा जब तक कि मुझे कोई समाधान नहीं मिलता ...
एलेक्सकोवेलस्की

3

मुझे 8.1 और बाहरी अनुरोध में IIS एक्सप्रेस का उपयोग करने में कुछ समस्याएं हैं।

मैं बाहरी अनुरोध को डीबग करने के लिए इस चरण का पालन करता हूं:

  1. IIS स्थापित करें
  2. स्थानीय IIS (अपने वेब प्रोजेक्ट में पृष्ठ गुण) का उपयोग करने के लिए Visual Studio कॉन्फ़िगर करें
  3. मेरे आवेदन के साथ काम करने के लिए IIS में एक विशेष AppPool बनाएं
  4. अपने प्रोजेक्ट में मैं Oracle क्लाइंट का उपयोग कर रहा हूं और 32 बिट्स होना चाहिए (64 बिट्स विजुअल स्टूडियो के साथ काम नहीं करते हैं) तो मुझे एप्लीकेशन पूल में 32 बिट की अनुमति चाहिए
  5. पोर्ट 80 (इनबाउंड नियम) में अनुरोध की अनुमति देने के लिए Windows फ़ायरवॉल कॉन्फ़िगर करें

यह काम कर रहा है!


2

यदि आप व्यवस्थापक से विजुअल स्टूडियो चलाते हैं तो आप बस जोड़ सकते हैं

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

या

<binding protocol="https" bindingInformation="*:8443:*" />

में

%userprofile%\My Documents\IISExpress\config\applicationhost.config

1
मैंने इस कॉन्फ़िगरेशन को $(SolutionDir).vs\config\applicationHost.configभी लागू किया और मुझे विंडोज फ़ायरवॉल में एप्लिकेशन के पोर्ट (8443) को खोलना पड़ा।
टोनटियो

2

मैंने एक स्थानीय IIS सक्षम किया था, इसलिए मैंने सिर्फ अपने डिबगिंग पोर्ट के लिए एक पुनर्लेखन नियम बनाया ... मुझे लगता है कि यह अन्य विधि की तुलना में बेहतर और कूलर है, क्योंकि इसे विकसित करने के बाद एक बार निकालना आसान होता है ... यहां बताया गया है कि पुनर्लेखन कैसा दिखता है। ।

<rewrite>
    <rules>
        <rule name="ReverseProxyInboundRule1" stopProcessing="true">
            <match url="^dev/(.*)" />
            <action type="Rewrite" url="http://localhost:47039/{R:1}" />
        </rule>
    </rules>
</rewrite>

वीएस आपको सीधे अपने स्थानीय आईआईएस का उपयोग करके विकसित करने की अनुमति देता है (जो तब दूरस्थ कनेक्शन की अनुमति देता है) लेकिन बदले में आपको इसे हमेशा एक व्यवस्थापक के रूप में चलाना होगा ... मुझे ऐसा नहीं करना चाहिए।


यह मेरा पसंदीदा समाधान भी है, धन्यवाद :) मुझे सिर्फ अपने IIS के लिए रिवर्स प्रॉक्सी को सक्षम करना था, फिर इस नियम को अपने web.config में जोड़ें।
महदी घीसी

1

मैंने रिवर्स प्रॉक्सी दृष्टिकोण का उपयोग करके इस समस्या को हल किया।

मैंने wamp सर्वर स्थापित किया है और अपाचे वेब सर्वर की सरल रिवर्स प्रॉक्सी सुविधा का उपयोग किया है।

मैंने अपाचे वेब सर्वर (8081) को सुनने के लिए एक नया पोर्ट जोड़ा। फिर मैंने उस पोर्ट के लिए virtualhost के रूप में प्रॉक्सी कॉन्फ़िगरेशन जोड़ा।

<VirtualHost *:8081>
ProxyPass / http://localhost:46935/
ProxyPassReverse / http://localhost:46935/
</VirtualHost>

1

मैंने ये सभी कदम उठाए और कुछ भी मेरी मदद नहीं की। और मुझे क्या चाहिए, यह सिर्फ आईआईएस एक्सप्रेस के माध्यम से अपना ऐप चलाने के लिए है ...

यहाँ छवि विवरण दर्ज करें

आशा है ये मदद करेगा।


0

मैं अपने स्थानीय नेटवर्क में अन्य उपयोगकर्ताओं के लिए iis अनुरोधों की सेवा करने में असमर्थ था, मुझे केवल इतना करना था (उपरोक्त के अलावा) अपने बीटी हब राउटर को पुनरारंभ करना था।


0

यह बेहद भयानक है और यहां तक ​​कि सुंदर डोमेन नामों के साथ HTTPS को भी कवर करता है:

http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx

वास्तव में भयानक भागों मैं SO पर कहीं और नहीं मिल सकता है अगर उपरोक्त लिंक कभी दूर हो जाता है:

> C:\Program Files (x86)\IIS Express>IisExpressAdminCmd.exe Usage:
> iisexpressadmincmd.exe <command> <parameters> Supported commands:
>       setupFriendlyHostnameUrl -url:<url>
>       deleteFriendlyHostnameUrl -url:<url>
>       setupUrl -url:<url>
>       deleteUrl -url:<url>
>       setupSslUrl -url:<url> -CertHash:<value>
>       setupSslUrl -url:<url> -UseSelfSigned
>       deleteSslUrl -url:<url>
> 
> Examples: 1) Configure "http.sys" and "hosts" file for friendly
> hostname "contoso": iisexpressadmincmd setupFriendlyHostnameUrl
> -url:http://contoso:80/ 2) Remove "http.sys" configuration and "hosts" file entry for the friendly  hostname "contoso": iisexpressadmincmd
> deleteFriendlyHostnameUrl -url:http://contoso:80/

उपरोक्त उपयोगिता आपके लिए एसएसएल प्रमाणपत्र पंजीकृत करेगी! यदि आप -UseSelfSigned विकल्प का उपयोग करते हैं, तो यह सुपर आसान है।

यदि आप चीजों को कठिन तरीके से करना चाहते हैं, तो गैर-स्पष्ट हिस्सा आपको HTTP.SYS को यह बताने की आवश्यकता है कि इस तरह का क्या उपयोग करना है:

netsh http add sslcert ipport=0.0.0.0:443 appid={214124cd-d05b-4309-9af9-9caa44b2b74a} certhash=YOURCERTHASHHERE

सर्थश "थम्बप्रिंट" है जिसे आप एमएमसी में प्रमाणपत्र गुणों से प्राप्त कर सकते हैं।


0

मैंने निम्नलिखित किया और कनेक्ट करने में सक्षम था:

1) स्थानीय होस्ट से '*' के लिए IIS एक्सप्रेस कॉन्फिगर बाइंडिंग परिवर्तित

बाइंडिंग प्रोटोकॉल = "http" बाइंडिंग इनफॉर्मेशन = "*: 8888: *"

2) प्रोटोकॉल प्रकार के लिए विशेष पोर्ट की अनुमति देने के लिए फ़ायरवॉल पर इनबाउंड नियम को परिभाषित करें: tcp

3) अपने पोर्ट के लिए नेटवर्क कॉन्फ़िगरेशन जोड़ने के लिए निम्नलिखित कमांड जोड़ें: netsh http urlacl url = http: // *: 8888 / user = हर कोई जोड़ें


चूंकि आप इस प्रश्न पर आने के 6 साल बाद आ रहे हैं, और पहले से ही 12 अन्य उत्तर हैं, इसलिए यह सबसे अच्छा होगा यदि आप अपना उत्तर संपादित करें यह समझाने के लिए कि आपका उत्तर अन्य 12 की तुलना में बेहतर कैसे काम करता है (या कम से कम यह कैसा है फरक है)।
हेरिटिक बंदर

0

बाहरी अनुरोधों तक पहुंचने का दूसरा तरीका IIS एक्सप्रेस के बजाय IIS का उपयोग करना है। मेरे दृश्य स्टूडियो में, मैं बस आसानी से स्विच कर सकता हूं।

यहाँ छवि विवरण दर्ज करें


मैं VS2019 का उपयोग कर रहा हूं।
PJ3

-1

[परियोजना गुण संवाद]

VisualStudio 2017 और NetCore API-प्रोजेक्ट का उपयोग कर विकास के लिए:

1) सीएमडी-बॉक्स में: आईपी-एड्रेस निर्धारित करने के लिए ipconfig / all

2a) प्रोजेक्ट गुण-> डिबग टैब में पुनर्प्राप्त आईपी-पता दर्ज करें

2 बी) एक पोर्ट का चयन करें और चरण 2 ए से आईपी पते पर संलग्न करें।

3) चयनित पोर्ट पर आने वाले टीसीपी-ट्रैफिक की अनुमति देने के लिए फ़ायरवॉल में एक अनुमति नियम जोड़ें (मेरा फ़ायरवॉल एक डायलॉग के साथ चालू होता है: "फ़ायरवॉल पर नियम जोड़ें या जोड़ें")। उस मामले में जोड़ देगा चाल।

उपरोक्त समाधान का नुकसान:

1) यदि आप एक गतिशील आईपी-पते का उपयोग करते हैं तो आपको एक और आईपी-पता असाइन किए जाने की स्थिति में उपरोक्त चरणों को फिर से करने की आवश्यकता है।

2) आपके पास अब एक खुला पोर्ट है जिसे आप भूल सकते हैं, लेकिन यह खुला बंदरगाह अवांछित मेहमानों के लिए एक आमंत्रण है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.