2013-02-13 58 views
7

में एक स्थिर पोर्ट मैपिंग नहीं जोड़ सकता है, मैं अपने सी # एप्लिकेशन में नया स्थिर पोर्ट मैपिंग जोड़ने की कोशिश कर रहा हूं।मेरे सी # अनुप्रयोग

वस्तु संदर्भ के लिए सेट नहीं: क्योंकि अपने आवेदन एक सर्वर के रूप में चलाता है और मैं अपने बंदरगाह 8000.

NATUPNPLib.UPnPNATClass upnpnat = new NATUPNPLib.UPnPNATClass(); 
NATUPNPLib.IStaticPortMappingCollection mappings = upnpnat.StaticPortMappingCollection; 
mappings.Add(8000, "TCP", 8000, "192.168.1.100", true, "Local Web Server"); 

पर सुनने के लिए चाहते हैं, लेकिन यह काम नहीं करता !, अपवाद निम्न था एक वस्तु का एक उदाहरण।

क्या कोई मेरी मदद कर सकता है?

उदाहरण के लिए:: http://pietschsoft.com/post/2009/02/05/NET-Framework-Communicate-through-NAT-Router-via-UPnP.aspx

+0

क्या 'mappings' है भूल जाते हैं? क्या आपने इसे शुरू किया? अपना पूरा कोड यहां रखें .. –

+0

अधिक कोड पोस्ट करना एक अच्छा विचार होगा। उदाहरण के लिए, किस ऑब्जेक्ट प्रकार मैपिंग है। –

+0

@MuhamadSerawan अपने प्रश्न में अपने कोड पेस्ट करें। टिप्पणी के रूप में नहीं .. –

उत्तर

3

आप एक नया उदाहरण के लिए मैपिंग निर्धारित करने की आवश्यकता:

var mappings = new List<Mapping>(); 

तो फिर तुम फोन कर सकते हैं:

mappings.Add(8000, "TCP", 8000, "192.168.1.100", true, "Local Web Server"); 

यह मैं क्या कर रहा है

आपके संपादन से:

upnpnat.StaticPortMappingCollection; // this is your problem. 

संग्रह वापस शून्य के रूप में आ रहा है। इसलिए आप संग्रह में नहीं जोड़ सकते हैं।

NATUPNPLib.IStaticPortMappingCollection mappings = new StaticPortMappingCollection(); 

Codesleuth की टिप्पणी से::

आप करना पड़ सकता है

मेरा मानना ​​है कि इस सवाल का जवाब है कि अपने रूटर एक UPnP प्रवेश द्वार के रूप कॉन्फ़िगर नहीं किया गया है, या वह है कि आज्ञा नहीं है। StaticPortMappingCollection शून्य है यदि इनमें से कोई भी मामला सत्य है। मेरा सुझाव है कि आप इसे अपने उत्तर में संपादित करें क्योंकि आपको वैसे भी त्रुटि का सही कारण मिल गया है। अशक्त के लिए जांच की जा रही पहली त्रुटि

+0

@Muhammed - मेरा संपादन –

+0

वास्तव में, ऐसा लगता है कि उसका कोड काम करना चाहिए। [इस आलेख को देखें] (http://www.codeproject.com/Articles/110338/UpnpStat-List-and-Modify-port-Mappings-on-your-UPn) – Codesleuth

+0

@Codesleuth - शायद यह होना चाहिए लेकिन त्रुटि इंगित करती है कि संग्रह में कोई उदाहरण नहीं है। –

1

अधिक कोड के बिना हम मदद करने में सक्षम होगा से निपटने के लिए एक ही रास्ता है, लेकिन अगर अपवाद लाइन आपके द्वारा दी गई पर है, इसका मतलब है कि mappings बातिल और नहीं सेट है।

यह देखने के लिए कि आप वास्तव में mappings चर बना रहे हैं और सेट कर रहे हैं, उस पंक्ति से पहले कोड को चेक करें।

आपकी टिप्पणी के अनुसार, upnpnat.StaticPortMappingCollection द्वारा लौटाई गई वस्तु शून्य है जो शून्य है। यह सुनिश्चित करने के लिए प्रलेखन जांचें कि आप इसे सही तरीके से प्रारंभ कर रहे हैं।

1

बस आपके त्रुटि संदेश पर आधारित है जो हमारे पास बस है;

var mappings = new List<Mapping>(); 
mappings.Add(8000, "TCP", 8000, "192.168.1.100", true, "Local Web Server"); 

आपके संपादन के बाद, शायद इस तरह का उपयोग करना;

NATUPNPLib.IStaticPortMappingCollection mappings = new StaticPortMappingCollection(); 

लगता है कि आप का उपयोग करने के ()

+0

है जिसने समस्या को ठीक नहीं किया है। – Matth3w