从VB.NET创建AD用户的异常中定位重复目录服务属性
Active Directory创建用户时“属性已存在”异常的排查
我维护着一段VB.NET编写的Active Directory新用户创建代码,代码通常运行正常,但在某些未知场景下会抛出异常:
指定的目录服务属性或值已存在
我需要知道如何通过捕获到的异常信息,判断具体是哪个目录服务属性重复导致的异常?我已经尝试过捕获异常详情、内部异常信息(如ex.ToString()、ex.Message)、堆栈跟踪、exception.Data等,但都无法获取到具体重复属性的细节。
现有代码
Try Dim dirEntry As DirectoryEntry = GetDirectoryEntry(myLocation) Dim newUser As DirectoryEntry = dirEntry.Children.Add("cn=" & surnames + "\, " & name, "user") newUser.Properties("displayName").Add(surnames & ", " & name) newUser.Properties("name").Add(surnames & ", " & name) newUser.Properties("sn").Add(surnames) newUser.Properties("givenName").Add(name) newUser.Properties("samAccountName").Add(userName) newUser.Properties("userPrincipalName").Add(userName & domainAccountMail) newUser.Properties("mailNickname").Add(userName) newUser.Properties("mobile").Add(myTelephone) newUser.Properties("mail").Add(myMail) newUser.Properties("targetAddress").Add("SMTP:" & userName & CDomainMailCloudGeneral) newUser.Properties("proxyAddresses").AddRange(New Object() {"SMTP:" & myMail, "smtp:" & userName & domainAcountMail, "smtp:" & userName & CDomainMailNubeGeneral}) newUser.Properties("userAccountControl").Value = &H2 Or &H200 newUser.CommitChanges() Catch ex As Exception ' 现有捕获逻辑 End Try
疑问
撰写此问题时我想到,捕获块应该针对特定异常类型,但我不知道具体是哪种异常;是否应该先记录ex.GetType().ToString()来获取异常类型,然后修改捕获块以捕获特定异常,从而获取更多细节?这是否可行?
内容的提问来源于stack exchange,提问作者Roger
相关产品推荐
相关产品推荐

