[c#] استثناء COM Active Directory - حدث خطأ في عمليات (0x80072020)


3 Answers

لقد وجدت الآن إجابة أخرى غير قادر على إضافة مستخدم مع CrmService API في Dynamics CRM والتي تنص على أن 0x80072020 هو في الواقع مشكلة إذن. لقد قمت بتغيير الخدمة الخاصة بي للتشغيل تحت حساب مستوى النطاق بدلاً من حساب النظام المحلي ويبدو أن هذا قد شفي مشكلتي.

Question

الحصول على استثناء COM متقطعة " حدث خطأ في عمليات (0x80072020) " (كما هو موضح أدناه) عند محاولة الاستعلام Active Directory باستخدام الأسلوب GroupPrincipal.FindByIdentity

هنا الكود:

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, Environment.UserDomainName);
GroupPrincipal groupPrincipal = GroupPrincipal.FindByIdentity(ctx, IdentityType.Name, "Group to find");

أتلقى استثناء:

Inner Exception: System.Runtime.InteropServices.COMException (0x80072020): An operations error occurred.
  at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
  at System.DirectoryServices.DirectoryEntry.Bind()
  at System.DirectoryServices.DirectoryEntry.get_AdsObject()
  at System.DirectoryServices.PropertyValueCollection.PopulateList()
  at System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName)
  at System.DirectoryServices.PropertyCollection.get_Item(String propertyName)
  at System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInitNoContainer()
  at System.DirectoryServices.AccountManagement.PrincipalContext.DoDomainInit()
  at System.DirectoryServices.AccountManagement.PrincipalContext.Initialize()
  at System.DirectoryServices.AccountManagement.PrincipalContext.get_QueryCtx()
  at System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithTypeHelper(PrincipalContext context, Type principalType, Nullable`1 identityType, String identityValue, DateTime refDate)
  at System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithType(PrincipalContext context, Type principalType, IdentityType identityType, String identityValue)
  at System.DirectoryServices.AccountManagement.GroupPrincipal.FindByIdentity(PrincipalContext context, IdentityType identityType, String identityValue)

يتم تشغيل التعليمات البرمجية من خدمة Windows على خادم Windows 2003 المزود بحزمة الخدمة SP2 .

لقد وجدت سؤال آخر حول ، Active Directory ، تعداد مجموعات المستخدم ، استثناء COM ، مما يوحي بأن تمكين Kerberos كخيار في مُنشئ PrincipalContext سيعمل على حل هذه المشكلة لكنني أتلقى رمزًا عشريًا مختلفًا عن هذا السؤال.

أسئلتي هي :

  1. هل هذا استثناء COM بالتحديد مشكلة مصادقة؟ أحتاج إلى التأكد من أن ذلك سيعمل على حل المشكلة بنسبة 100٪ قبل إصدار البرنامج.
  2. هل هناك مورد في مكان ما يسرد كل رموز ست عشري استثناء COM ممكن حتى أتمكن من مساعدة نفسي أفضل قليلا في المستقبل؟



في حالتي ، تم تشغيل تجمع تطبيقات الويب كـ "DefaultAppPool" الذي لم يكن لديه وصول كافٍ للاتصال بـ Active Directory الخاص بالشركة. لذلك ، انتحلت شخصية حساب لديه حق الوصول إلى AD في الرمز الخاص بي وكل شيء سار على ما يرام.




بالنسبة لي ، واجهت نفس المشكلة مع محاولة تسجيل الدخول إلى أحد وحدات التحكم بالمجال ، لدى وحدات التحكم بالمجال 2 ، واحد منهم يعمل والآخر لا يعمل ، وأعتقد أن لديها علاقة مع ملف تعريف المستخدم ، لا يزال التحقيق ...




حدث هذا لي في ASP.NET (Windows 2008 R2 / IIS7) حيث كنت العبث مع Web.config وبدأ هذا الخطأ يحدث في كل مكالمة FindByIdentity. كان السبب الرئيسي في تشغيل تجمع التطبيقات هو DefaultAppPool ، وبدأ العمل مرة أخرى بعد أن قمت بتغييره ليعمل كخدمة شبكة. أنا لا أفهم تماما لماذا ستتغير ، لكنها فعلت.




Related