A hotfix rollup package for Active Directory Web Service is available for the .NET Framework 3.5 SP1

Applies to: .NET Framework 3.5 Service Pack 1


A hotfix rollup package is available for the Microsoft .NET Framework 3.5 Service Pack 1 (SP1). This rollup package resolves the following issues in the Active Directory Web Service (ADWS).

Issue 1

You locate a domain controller to run one of the following operations in the custom action protocol:
  • GetADPrincipalGroupMembership
  • GetADGroupMember

  • GetADPrincipalAuthorizationGroup

After you run one of these operations several times, the domain controller becomes unresponsive.

Issue 2

When you run an ADWS service that uses the GetADPrincipalGroupMembership operation in the custom action protocol, the service crashes.

Issue 3

You cannot use the GroupPrincipal.GetMembers method to return any of the following group objects:
  • Domain controllers
  • Read-only domain controllers
  • Domain computers
Issue 4

You are using the Active Directory Lightweight Directory Services (AD LDS) mode. You have a group that contains members from different partitions. If you call the GroupPrincipal.GetMembers method, an exception occurs, and you receive the following error message:
Microsoft.ActiveDirectory.Management.ADException: Unknown error (0x5011) ---> System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: Unknown error (0x5011) (Fault Detail
is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose va
lue is:
System.Runtime.InteropServices.COMException: Unknown error (0x5011)
at System.DirectoryServices.SearchResultCollection.ResultsEnumerator.MoveNext()
at System.DirectoryServices.AccountManagement.ADDNLinkedAttrSet.GetNextSearchResult()
at System.DirectoryServices.AccountManagement.ADDNLinkedAttrSet.MoveNextMemberSearcher()
at System.DirectoryServices.AccountManagement.ADDNLinkedAttrSet.MoveNext()
at System.DirectoryServices.AccountManagement.FindResultEnumerator`1.MoveNext()
at System.DirectoryServices.AccountManagement.FindResultEnumerator`1.System.Collections.IEnu
at Microsoft.ActiveDirectory.WebServices.ActiveDirectoryWebService.GetADGroupMember(GetADGro
upMemberRequest request)
at SyncInvokeGetADGroupMember(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs,
Object[]& outputs)
at System.Se...).

Issue 5

You are using the AD LDS mode. You have a .NET Framework application that uses the User.GetGroups method. However, the method returns an empty set.

Issue 6

The UserPrincipal.GetGroups method returns cross-domain local groups for a member. For example, consider the following scenario:
  • A target domain and a foreign domain are located in the same forest.
  • A user inside the target domain is a member of a local group in the foreign domain.
  • A global catalog server is available in the foreign domain, but no global catalog server is available in the target domain.
When you run the GetADPrincipalGroupMembership method in this scenario, the local group in the foreign domain is returned.

  • In this scenario, this issue may also occur when the global catalog servers are available in both domains.
  • This issue occurs if certain site settings are specified on the available global catalog servers.

Issue 7

The information about visited members is cached unnecessarily.

Issue 8

When an AD LDS account is a member of more than 1500 groups, the GetGroups method does not return all the groups.

Issue 9

When attempting to install the Active Directory Management Gateway service, the installation fails with the error "the update does not apply to your system".


The following causes match the first three issues that are described in the "Symptoms" section:

Cause of Issue 1

This problem occurs because, when you use Impersonation, a handle leak occurs in the GetGroups, GetMembers, and GetAuthorizationGroups methods.

Cause of Issue 2

This problem occurs because multiple threads call the UserPrincipal.GetGroups method at the same time. When a static object is shared by the threads, and two threads try to free the same memory block, an access violation occurs.

Cause of Issue 3

This problem occurs because the filter that is used to fetch the objects includes only the user object category.


A supported hotfix is now available from Microsoft. However, it is intended to correct only the problem that is described in this article. Apply it only to systems that are experiencing this specific problem. This hotfix may receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next service pack that contains this hotfix.

To resolve this problem immediately, contact Microsoft Customer Support Services to obtain the hotfix. For a complete list of Microsoft Customer Support Services telephone numbers and information about support costs, visit the following Microsoft Web site:Note In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.


You must have the .NET Framework 3.5 SP1 installed to apply this hotfix.

Restart requirement

You do not have to restart the computer after you apply this hotfix.

Hotfix replacement information

This hotfix does not replace any other hotfixes.

File information

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the
Time Zone
tab in the
Date and Time
item in Control Panel.
File nameFile versionFile sizeDateTimePlatform
Note This hotfix will be eventually merged into the .NET Framework 4.0


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.