2010-12-06 18 views
6

के साथ DNS लुकअप में विफल रहा है मेरे पास एक ऐसा एप्लिकेशन है जो विंडोज 7 के तहत DNS लुकअप (System.Net.Dns.GetHostEntry) में विफल रहा है। यह एप्लिकेशन XP के अंतर्गत ठीक काम करता है।.NET प्रक्रिया विंडोज 7

WSANO_RECOVERY यह एक nonrecoverable त्रुटि है:

त्रुटि उत्पन्न की जा रही सॉकेट त्रुटि कोड 11003 है। यह इंगित करता है कि डेटाबेस लुकअप के दौरान कुछ प्रकार की अप्राप्य त्रुटि हुई। ऐसा इसलिए हो सकता है क्योंकि डेटाबेस फ़ाइलों (उदाहरण के लिए, बीएसडी-संगत HOSTS, SERVICES, या PROTOCOLS फ़ाइलें) नहीं मिल सका, या गंभीर त्रुटि के साथ सर्वर द्वारा एक DNS अनुरोध वापस कर दिया गया था।

विशेष रूप से दिलचस्प क्या है, यह है कि यह प्रक्रिया सीधे नेटवर्क शेयर से चल रही है। अगर मैं इसे विन 7 के तहत स्थानीय रूप से चलाता हूं, तो यह ठीक काम करता है।

मैं Caspol (32 बिट & 64 बिट) के सभी संस्करणों के तहत नेटवर्क स्थान पूर्ण विश्वास दिया है।

क्या कोई अन्य .NET या Windows 7 सुरक्षा सेटिंग है जो नेटवर्क साझा स्थानों से चल रही प्रक्रियाओं द्वारा DNS लुकअप को रोकती है?

+1

यह पूछने के लिए धन्यवाद। आपके प्रश्न ने मुझे सिखाया कि अगर मैं अपने प्रोग्राम को स्थानीय ड्राइव से नेटवर्क ड्राइव की बजाय चलाता हूं तो GetHostEntry ठीक काम करेगा।:) –

उत्तर

2

बाहर कर देता है इस Caspol था।

लेकिन विंडोज 7 पर, केवल प्रशासक समूह में होना पर्याप्त नहीं है।

तुम भी नेट कमांड प्रॉम्प्ट शॉर्टकट राइट क्लिक करने और यूएसी बायपास करने के लिए "व्यवस्थापक के रूप में चलाएँ" लेने के लिए किया है।

फिर सामान्य कैस्पोल आदेश काम करेंगे।

0

यदि आप एक आईपी पता पारित कर रहे हैं, तो यह ध्यान देने योग्य है कि डिफ़ॉल्ट रूप से, यह आईपीवी 6 का उपयोग करता है और दस्तावेज़ीकरण के अनुसार, यह exception फेंक देगा।

मेरे सुझाव नीचे दिए गए कोड का उपयोग कर IPv4 पता पाने के लिए है:

IPAddress ipv4 = Dns.GetHostAddresses(address).Where(x=>x.AddressFamily == AddressFamily.InterNetwork).FirstOrDefault(); 
+0

मैं वास्तव में होस्ट नाम का उपयोग कर रहा हूं, हालांकि आईपी पते का उपयोग एक ही त्रुटि के साथ विफल रहता है। उस लिंक पर एक नोट बताता है कि DNS "इंटरनेट जोन" में किसी भी चीज़ पर स्वचालित रूप से विफल हो जाता है। तो मैं इसकी जांच करने जा रहा हूं। –

+0

सुरक्षा क्षेत्र मेरा कंप्यूटर है ताकि नियम समाप्त हो जाएं। –

+0

क्या आपने मेरा कोड बिल्कुल प्रयास किया? जैसा कि मैंने वर्णन किया है आईपीवी 4 पता प्राप्त करें और फिर आईपीवी 4 पास करके GetHostEntry को कॉल करें। यह काम करना चाहिए। – Aliostad

0

ठीक है, आसानी से परीक्षण करने के लिए करता है, तो अपने DNS ठीक से कॉन्फ़िगर किया रूट निर्देशिका में एक भी html पृष्ठ जोड़ना है। यदि यह पृष्ठ अपेक्षित के रूप में प्रस्तुत करता है, तो डीएनएस ठीक है।

हर किसी के पास चीजों की जांच करने का अपना तरीका है, यह सही है क्योंकि हम अपने अनुभव साझा कर सकते हैं। मैं अपने कोड/पेज के बिट्स को उस सर्वर से संबंधित करना चाहता हूं जो मैं एक समय में एक बिट को पूरा करना चाहता हूं।

आशा इस मदद करता है ...

+0

यह एक मोटी क्लाइंट WPF ऐप है जो वेब ऐप नहीं है। –

+0

@ गुसपॉल, इससे कोई फर्क नहीं पड़ता कि ऐप एक डब्ल्यूपीएफ या वेब आधारित है या नहीं। वह आपको अपने DNS का परीक्षण करने का तरीका बता रहा है। –

1

नेटवर्क साझाकरण से चल रहे .NET अनुप्रयोग के माध्यम से SQL सर्वर से कनेक्ट होने वाली एक ही समस्या थी।

Win7/2008 के साथ

, आप साझा से हर फ़ोल्डर पर पढ़ें चाहिए, सूची फ़ोल्डर सामग्री आवेदन फ़ोल्डर में नीचे। यदि बिना किसी अनुमति के मध्यस्थ फ़ोल्डर है, तो कनेक्शन विफल हो जाता है।

XP पर काम करता है।