C# 由于未知原因获取Com异常

C# 由于未知原因获取Com异常,c#,.net,active-directory,treeview,C#,.net,Active Directory,Treeview,我试图将Aduser列表添加到字典中,但出于某种原因,它适用于一个名为“a”的用户,但对于第二个用户“abcdedf ancdef”,它给了我这个例外 \u compluseExceptionCode=0xe0434f4d if (member != null && !string.IsNullOrEmpty(member.UserName)) {

我试图将Aduser列表添加到字典中,但出于某种原因,它适用于一个名为“a”的用户,但对于第二个用户“abcdedf ancdef”,它给了我这个例外

\u compluseExceptionCode=0xe0434f4d

                         if (member != null && !string.IsNullOrEmpty(member.UserName))
                        {
                            string MemberName = member.UserName.ToString().Replace(".", " ");
                            UserList.Add(groupName, MemberName);
                        }
这是我调试时得到的,不知道去哪里找到解决方案,下面是代码

        protected override void CreateChildControls()
    {
        base.CreateChildControls();

        try
        {
            TreeView tree = new TreeView();
            TreeNode groupNode = default(TreeNode);
            List<string> GroupList = new List<string>();
            Dictionary<string, string> UserList = new Dictionary<string, string>();
            List<string> IndividualUserList = new List<string>();

            foreach (SPUser user in SPContext.Current.Web.Users)
            {
                string groupName = FormatUserLogin(user.Name);

                if (!user.IsDomainGroup &&  groupName != "" && groupName != "System Account")
                    IndividualUserList.Add(groupName);

                else if (user.IsDomainGroup && !string.IsNullOrEmpty(groupName) && 
                    Directory.DoesGroupExist(groupName))
                {
                    GroupList.Add(groupName);
                    foreach (ADUser member in Directory.GetUsersFromGroup(groupName))
                    {
                        if (member != null && !string.IsNullOrEmpty(member.UserName))
                        {
                            string MemberName = member.UserName.ToString().Replace(".", " ");
                            UserList.Add(groupName, MemberName);
                        }
                    }
                }
            }

            IndividualUserList.Sort();

            foreach (string Item in IndividualUserList)
            {
                groupNode = new TreeNode(Item);
            }

            foreach (string GroupListItem in GroupList)
            {
                groupNode = new TreeNode(GroupListItem);
                foreach (KeyValuePair<string, string> UserPair in UserList)
                {
                    if (UserPair.Key == GroupListItem)
                    {
                        groupNode.ChildNodes.Add(new TreeNode(UserPair.Value));
                    }
                }
            }

            if (groupNode != null)
            {
                tree.Nodes.Add(groupNode);
                this.Controls.Add(tree);
            } 
            tree.Nodes.Add(groupNode);
        }
        catch (Exception)
        {
            //loggingit
        }
    }
protectedoverride void CreateChildControls()受保护的覆盖
{
base.CreateChildControls();
尝试
{
TreeView tree=新的TreeView();
TreeNode groupNode=默认值(TreeNode);
List GroupList=新列表();
Dictionary UserList=newdictionary();
List IndividualUserList=新列表();
foreach(SPContext.Current.Web.Users中的SPUser用户)
{
字符串groupName=FormatUserLogin(user.Name);
如果(!user.IsDomainGroup&&groupName!=“”&&groupName!=“系统帐户”)
IndividualUserList.Add(groupName);
else if(user.IsDomainGroup&&!string.IsNullOrEmpty(groupName)&&
Directory.DoesGroupExist(groupName))
{
GroupList.Add(groupName);
foreach(目录中的ADUser成员。GetUsersFromGroup(groupName))
{
if(member!=null&&!string.IsNullOrEmpty(member.UserName))
{
字符串MemberName=member.UserName.ToString().Replace(“.”,”);
添加(组名、成员名);
}
}
}
}
IndividualUserList.Sort();
foreach(IndividualUserList中的字符串项)
{
groupNode=新的树节点(项目);
}
foreach(GroupList中的字符串GroupListItem)
{
groupNode=新的树节点(GroupListItem);
foreach(用户列表中的KeyValuePair用户对)
{
if(UserPair.Key==GroupListItem)
{
添加(新的树节点(UserPair.Value));
}
}
}
if(groupNode!=null)
{
tree.Nodes.Add(groupNode);
this.Controls.Add(树);
} 
tree.Nodes.Add(groupNode);
}
捕获(例外)
{
//记录
}
}

“COMPlus”是.NET的早期名称。异常代码用于托管异常。您需要首先找出异常是在哪里引发的,然后您将知道它是如何被报告为这样的。使用调试+异常和勾选CLR异常。如果你仍然得到它,那么就开始看另一端。不,COM+不是.net。COM+是DCOM的一个新名称,DCOM是一种旧得多的技术。