2016-08-08 7 views
10

के लिए एक PrincipalContext की जुड़ा सर्वर जाओ मैं एक विधि CreateContextForGlobalCatalog कि एक PrincipalServer एक वैश्विक सूची से कनेक्ट होता है देता है और कंटेनर पैरामीटर हैं।वैश्विक सूची

इस संदर्भ मैं डेटाबेस से वस्तुओं के ऊपर पाशन कर रहा हूँ ActiveDirectory में वैश्विक सूची से जानकारी प्राप्त करने के साथ:

using (PrincipalContext principalContext = CreateContextForGlobalCatalog()) 
{ 
    foreach (ADAccount adAccount in accounts){ 
     Log.Debug("Connected server: " + principalContext.ConnectedServer); 

    // get some information from AD here ... 
    } 
} 

Log.Debug लाइन PrincipalContext से जुड़ा सर्वर लॉग करता है। मेरे पास केवल वर्चुअल मशीन युक्त परीक्षण सेटअप है।

मेरे समस्या: जब मैं अभी डिस्कनेक्ट उस जुड़े सर्वर (अक्षम करें नेटवर्क एडाप्टर) मैं एक अपवाद नहीं मिलता है और एक नया सर्वर लेकिन लॉग संदेश अभी भी से कनेक्ट मूल जुड़े सर्वर से पता चलता यद्यपि सर्वर नहीं है अब उपलब्ध है।

क्या किसी भी तरह से कनेक्ट की गई सर्वर संपत्ति को रीफ्रेश करने या कहीं और जानकारी प्राप्त करने का कोई तरीका है?

+0

जाहिर है आपको अपने * चेंजट्रैकर को लागू करना है * यहां एक नज़र डालें [http://stackoverflow.com/a/2002763/4558029) और देखें कि यह – lokusking

+0

में मदद करता है या नहीं, तो आप जांच सकते हैं कि आपका नेटवर्क कनेक्ट है या नहीं ? इस तरह: System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable() –

+0

@lokusking हाहा, वास्तव में मैं परिवर्तन अधिसूचनाओं के साथ बहुत कुछ कर रहा हूं और वे वास्तव में वस्तुओं को सिंक करने की अंतर्निहित समस्या का समाधान हैं। लेकिन इस बार मैं सिर्फ नया 'कनेक्टेड सर्वर' प्राप्त करना चाहता हूं। –

उत्तर

2

दुर्भाग्य से, यह दीक्षा के बाद अद्यतन किया जा कभी नहीं होगा, केवल वैकल्पिक हल आप कर सकते हैं या हर यात्रा के साथ पुनः जाँच करने के लिए अगर आप अभी भी जुड़े हुए हैं है नहीं

+0

मैं जुड़ा हुआ हूं, अन्यथा एक अपवाद होगा। मैं सिर्फ यह जानना चाहता हूं कि मैं किस सर्वर से जुड़ा हूं। लेकिन इस प्रश्न के उत्तर के shiploads को देखते हुए ;-) ऐसा लगता है कि यह वास्तव में असंभव है –

0

सबसे सरल उपाय कोशिश करते हैं और दूरस्थ सर्वर को पिंग करने हो सकता है .Net's Ping कक्षा का उपयोग करना।

+0

क्षमा करें, यह मेरी समस्या का समाधान नहीं करता है: जीसी से कनेक्ट होने पर और सर्वर जो मैं स्वचालित रूप से जुड़ा हुआ हूं, से जुड़ा हुआ है एक और सर्वर और मैं उस सर्वर के पते को जानना चाहता हूं, लेकिन मुझे केवल पहले सर्वर का पता चला है। क्षमा करें अगर आपने मेरे प्रश्न को गलत समझा। सवाल अपडेट किया गया। –

संबंधित मुद्दे