2011-09-27 20 views
10

कनेक्ट नहीं कर रहा है मैं एक webservice के लिए प्रिंसिपल कॉन्टेक्स्ट का उपयोग करने का प्रयास कर रहा हूं जिसे मैं विकसित कर रहा हूं। मैं पहले से ही एक अलग अनुप्रयोग में वेब सर्वर पर फॉर्म प्रमाणीकरण का उपयोग कर रहा हूं और यह ठीक काम करता है।प्रिंसिपल कॉन्टेक्स्ट

त्रुटि है कि मैं प्राप्त कर रहा हूँ:

System.DirectoryServices.AccountManagement.PrincipalServerDownException: The server could not be contacted. ---> System.DirectoryServices.Protocols.LdapException: The LDAP server is unavailable. 
    at System.DirectoryServices.Protocols.LdapConnection.Connect() 
    at System.DirectoryServices.Protocols.LdapConnection.SendRequestHelper(DirectoryRequest request, Int32& messageID) 
    at System.DirectoryServices.Protocols.LdapConnection.SendRequest(DirectoryRequest request, TimeSpan requestTimeout) 
    at System.DirectoryServices.Protocols.LdapConnection.SendRequest(DirectoryRequest request) 
    at System.DirectoryServices.AccountManagement.PrincipalContext.ReadServerConfig(String serverName, ServerProperties& properties) 
    --- End of inner exception stack trace --- 
    at System.DirectoryServices.AccountManagement.PrincipalContext.ReadServerConfig(String serverName, ServerProperties& properties) 
    at System.DirectoryServices.AccountManagement.PrincipalContext.DoServerVerifyAndPropRetrieval() 
    at System.DirectoryServices.AccountManagement.PrincipalContext..ctor(ContextType contextType, String name, String container, ContextOptions options, String userName, String password) 
    at System.DirectoryServices.AccountManagement.PrincipalContext..ctor(ContextType contextType, String name, String container, String userName, String password) 
    at webService.Service1.ValidUser(String sUserName) in E:\Development\CSharpApps\Desktop\OrgChart\webService\Service1.asmx.cs:line 158 

हमारे वेबसर्वर DMZ में है और फ़ायरवॉल के माध्यम से डोमेन तक पहुँचता है। मैं एक उदाहरण के लिए नीचे पोर्ट जानकारी आदि का उपयोग कर रहा हूँ।

यह मेरे विकास बॉक्स से आईपी का उपयोग करता है, हालांकि यह फ़ायरवॉल के अंदर है। आईपी जानकारी जो मैं इसे भेज रहा हूं वैसा ही है जैसा कि मैं वेब फॉर्म प्रमाणीकरण के अंदर उपयोग कर रहा हूं।

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "192.168.1.1:389", "dc=doodlie,dc=com",@"doodlie\admin","doodliesquat"); 
+0

इसी तरह के प्रश्न यहां हैं: http://stackoverflow.com/questions/1023489/error-while-trying-to-connect-ad-using-ldap-connection – mmcglynn

उत्तर

0

मुद्दे के बावजूद, ई व्यवस्थापक/समस्या निवारण के लिए इन अमूल्य उपकरण के कुछ स्थापित करने किया गया है एक देवता मेरे लिए भेज देते हैं।

यदि संभव हो तो अपनी मशीन/या वेब सर्वर (यदि अनुमति है) पर दूरस्थ सर्वर व्यवस्थापन उपकरण (आरएसएटी) स्थापित करें और फिर अपने डीसी के सटीक यूआरएल/आईपी को निर्धारित करने के लिए सक्रिय निर्देशिका उपयोगकर्ता और कंप्यूटर क्लाइंट का उपयोग करें। यदि आप इन उपकरणों का उपयोग करके कनेक्ट नहीं कर सकते हैं जो आईटी समर्थन/देव ops

के अतिरिक्त एक प्रारंभिक बिंदु हो सकता है इसके अतिरिक्त एडी/सेवा खाते के तहत वेबसाइट एप्लिकेशन चल रहा है, जिसके पास पर्याप्त विशेषाधिकार नहीं हैं डीसी। मैं

using (HostingEnvironment.Impersonate()) { // code in here. }

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

0

मेरे मामले यूआरएल से पोर्ट संख्या को हटाने के काम

0

शायद मैं कुछ याद कर रहा हूँ में, लेकिन आप वास्तव में ई सर्वर को निर्दिष्ट करने के लिए नहीं है, आप कर सकते हैं बस कहें:

PrincipalContext ctx = new PrincipalContext(ContextType.Domain); 

और यह एप्लिकेशन के वर्तमान डोमेन पर जो भी डीसी मिल सकता है उसे ढूंढना चाहिए। यदि यह गलती सहनशीलता वाला नेटवर्क है, जब कोई नीचे है, तो दूसरे को उठाया जाना चाहिए। मुझे यकीन नहीं है कि एक को हिट करने का कोई कारण क्यों होगा, विशेष रूप से, मूल प्रश्न में कोड की तरह, जब तक यह एक अलग डोमेन पर न हो। यदि ऐसा है, तो आप उस डोमेन पर अपनी वेब सेवा को होस्ट करने का प्रयास कर सकते हैं, इसके बजाय, और यदि आवश्यक हो, तो नए डोमेन पर अपनी वेब सेवा के नए आईपी पर कॉल/रूट करने के लिए DNS और एक फॉरवर्डर का उपयोग करें, या होस्ट फ़ाइल प्रविष्टि का उपयोग करें , या सिर्फ आईपी द्वारा वेब सेवा का संदर्भ लें।

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

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