मेरा कंप्यूटर राउटर के पीछे है जो आगे पोर्ट 80 (पोर्ट 80 के रूप में) है। मेरी समस्या यह है कि HttpListener बाहरी आईपी पते पर संबोधित अनुरोधों को अनदेखा करता प्रतीत होता है।एचटीपी लिस्टर बाहरी अनुरोधों को अनदेखा क्यों करता है?
समस्या राउटर के साथ नहीं है; अगर मैं एक खाली सी # कंसोल प्रोजेक्ट बना सकते हैं और कोड का केवल निम्न पंक्तियां जोड़ें:
System.Net.Sockets.TcpListener s = new System.Net.Sockets.TcpListener(System.Net.IPAddress.Any, 80);
s.Start();
System.Net.Sockets.TcpClient c = s.AcceptTcpClient();
... और चलाने के कार्यक्रम [ध्यान दें: पहली बार इस कार्यक्रम चलाया जाता है, उपयोगकर्ता एक फ़ायरवॉल अनुमति देने के लिए हो सकता है अपवाद], यह अगर मैं अपने ब्राउज़र में
http://localhost/testpath/
पर नेविगेट समाप्त होगा या अगर मैं अपने ब्राउज़र में
http://externalipaddress/testpath/
करने के लिए नेविगेट - या तो पता सफलतापूर्वक एक पोर्ट 80 कनेक्शन प्रयास करता है।
System.Net.HttpListener s = new System.Net.HttpListener();
s.Prefixes.Add("http://+:80/testpath/");
s.Start();
System.Net.HttpListenerContext c = s.GetContext();
: अगर मैं एक और खाली सी # कंसोल प्रोजेक्ट बना सकते हैं और कोड का केवल निम्न पंक्तियां जोड़ें इस कंप्यूटर बंदरगाह पर आंतरिक और बाह्य कनेक्शन स्वीकार कर सकते हैं 80
अब, - तो, सब कुछ ठीक तरह से स्थापित है
... सबसे पहले, मुझे एक HttpListenerException मिलेगा कि this question में उल्लिखित मुद्दों के कारण एक्सेस अस्वीकार कर दी गई है। फिर जब मैं विजुअल स्टूडियो को बंद करता हूं और इसे प्रशासक के रूप में फिर से खोलता हूं तो यह ठीक से चल जाएगा। अगर मैं
http://externalipaddress/testpath/
पर नेविगेट कार्यक्रम (ठीक से) जब मैं
http://localhost/testpath/
पर नेविगेट हालांकि, मेरा अनुरोध बस समय समाप्त समाप्त कर देगा HttpListener समय के लिए बाहर करने के लिए अपने बाहरी अनुरोध क्यों पड़ता है? परिणाम 'बाहरीपैड्रेस' के लिए एक संख्यात्मक आईपी पता या डोमेन नाम के साथ पुन: उत्पन्न होता है, साथ ही साथ उपफोल्डर्स, स्लेश इत्यादि के कई क्रमिकताएं, और उपसर्गों के लिए "http: // *: 80/testpath /", http : // बाहरी डोमेन: 80/testpath/", और" http: // बाहरीipaddress: 80/testpath/"(कोई रिक्त स्थान; stackoverflow स्वरूपण के लिए जोड़ा गया)।
क्या आपने पोर्ट आईएस पर आने वाले कनेक्शन को अवरुद्ध करते हुए अपने आईएसपी से पूछा है? यह असामान्य है लेकिन कुछ करते हैं। अपने बाहरी आईपी को हल करने का भी प्रयास करें ताकि यह 'homeusr51363_516.your_isp.com' या इसी तरह के – rath
पर इंगित करे यदि मेरे आईएसपी आने वाले कनेक्शन को अवरुद्ध करता है, तो पहले कोड की सफलता (बाहरी आईपी पते के माध्यम से पोर्ट 80 से कनेक्ट होने वाली) कैसे होगी व्याख्या की? जैसा कि ध्यान दिया गया है, मैंने ब्राउज़र अनुरोधों में एक संख्यात्मक आईपी पता और एक हल करने योग्य डोमेन नाम का उपयोग करने का प्रयास किया है। – Ben