FIX: Memory leak when the IIS ADSI provider retrieves some metabase properties in IIS 7.5

Applies to: Internet Information Services 7.5Windows Server 2008 R2 Service Pack 1Windows Server 2008 R2

Not sure if this is the right fix? We've added this issue to our memory dump diagnostic which can confirm.

Symptoms


Consider the following scenario:
  • You install Internet Information Services (IIS) 7.5 on a computer that is running Windows 7 or Windows Server 2008 R2.
  • You install one of the following IIS features:
    • You install the IIS Metabase and IIS 6 configuration compatibility feature on a computer that is running Windows 7.
    • You install the IIS 6 Metabase Compatibility role service feature on a computer that is running Windows Server 2008 R2.
  • You run an application that uses the IIS Active Directory Service Interfaces (ADSI) provider to retrieve some IIS metabase properties. For example, the application monitors the changes and settings of configurations for IIS websites.
In this scenario, a memory leak occurs in the application. Therefore, performance of the application may decrease.

Cause


This issue occurs because of an error in the IIS ADSI provider.

Resolution


Hotfix information

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

If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.

Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft website: Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.


Note This hotfix updates the Adsiis.dll file.

Prerequisites

To apply this hotfix, you must have IIS 7.5 installed on a computer that is running one of the following operating systems:
  • Windows 7
  • Windows 7 Service Pack 1 (SP1)
  • Windows Server 2008 R2
  • Windows Server 2008 R2 Service Pack 1 (SP1)

Restart requirement

After you apply this hotfix, you must restart the computer unless the IIS service is stopped when you apply this hotfix.

Hotfix replacement information

This hotfix replaces the following previously released hotfix:
2428216 FIX: Performance may decrease when you use the IIS ADSI provider to query some metabase properties in IIS 7.5

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.

For all supported x86-based versions of Windows 7
File nameFile versionFile sizeDateTimePlatform
Adsiis.dll7.5.7600.20986289,79215-Jun-201108:42x86
Adsiis.dll7.5.7601.21747289,79215-Jun-201108:42x86
For all supported x64-based versions of Windows 7 and of Windows Server 2008 R2
File nameFile versionFile sizeDateTimePlatform
Adsiis.dll7.5.7600.20986333,31215-Jun-201109:44x64
Adsiis.dll7.5.7601.21747333,31215-Jun-201109:29x64
For all supported IA-64based versions of Windows Server 2008 R2
File nameFile versionFile sizeDateTimePlatform
Adsiis.dll7.5.7600.20986535,04015-Jun-201108:43IA-64
Adsiis.dll7.5.7601.21747535,04015-Jun-201108:36IA-64

Status


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

More Information


The code that reproduces this issue resembles the following C# sample code:
using System; using System.Text; using System.DirectoryServices; using System.Threading; using System.Diagnostics; namespace DirEntryProps2 { class Program { static void Main(string[] args) { Console.WriteLine("Press ENTER to begin"); Console.ReadLine(); String szPath = "IIS://localhost/W3SVC/1/Root"; int i = 0; Console.WriteLine("Press CTRL+C to break"); for (; ; ) { DirectoryEntry virtualDirectoryEntry = new DirectoryEntry(szPath); Console.WriteLine(virtualDirectoryEntry.Properties.PropertyNames.Count.ToString() + " property names"); if (i == 0) { Console.WriteLine("Directory services items now loaded. Ready to start memory leak."); Console.ReadLine(); GC.Collect(2); GC.Collect(2); GC.WaitForPendingFinalizers(); GC.Collect(2); } foreach (string propertyName in virtualDirectoryEntry.Properties.PropertyNames) { //.. Perform operations here } Console.WriteLine(i++.ToString()); Thread.Sleep(10); virtualDirectoryEntry.Dispose(); GC.Collect(2); GC.Collect(2); GC.WaitForPendingFinalizers(); GC.Collect(2); if (i > 1000) break; } Console.WriteLine("Finished!"); Console.ReadLine(); } } }

Additional file information

Additional file information for Windows 7 and for Windows Server 2008 R2

Additional files for all supported x86-based versions of Windows 7
File nameUpdate.mum
File versionNot Applicable
File size2,684
Date (UTC)15-Jun-2011
Time (UTC)13:58
PlatformNot Applicable
File nameX86_5438f4541c10067fb6628346f2182169_31bf3856ad364e35_6.1.7600.20986_none_b343e5fadb3af581.manifest
File versionNot Applicable
File size709
Date (UTC)15-Jun-2011
Time (UTC)13:58
PlatformNot Applicable
File nameX86_ea396b0b07e9e8df16be4a66e56cd9ab_31bf3856ad364e35_6.1.7601.21747_none_0ae389ae99557c9b.manifest
File versionNot Applicable
File size709
Date (UTC)15-Jun-2011
Time (UTC)13:58
PlatformNot Applicable
File nameX86_microsoft-windows-iis-adsicompatibility_31bf3856ad364e35_6.1.7600.20986_none_e7fc2dc05bcbbe14.manifest
File versionNot Applicable
File size19,620
Date (UTC)15-Jun-2011
Time (UTC)09:13
PlatformNot Applicable
File nameX86_microsoft-windows-iis-adsicompatibility_31bf3856ad364e35_6.1.7601.21747_none_ea0ecac058d0d393.manifest
File versionNot Applicable
File size19,620
Date (UTC)15-Jun-2011
Time (UTC)09:15
PlatformNot Applicable
Additional files for all supported x64-based versions of Windows 7 and of Windows Server 2008 R2
File nameAmd64_6f1fab28147ad4407bd6d823060bcaf8_31bf3856ad364e35_6.1.7601.21747_none_b9be12d9cae6cc06.manifest
File versionNot Applicable
File size1,068
Date (UTC)15-Jun-2011
Time (UTC)13:58
PlatformNot Applicable
File nameAmd64_e652a50fbe40ef022e95842f57f560fa_31bf3856ad364e35_6.1.7600.20986_none_438c506289b228fb.manifest
File versionNot Applicable
File size1,068
Date (UTC)15-Jun-2011
Time (UTC)13:58
PlatformNot Applicable
File nameAmd64_microsoft-windows-iis-adsicompatibility_31bf3856ad364e35_6.1.7600.20986_none_441ac94414292f4a.manifest
File versionNot Applicable
File size19,626
Date (UTC)15-Jun-2011
Time (UTC)10:19
PlatformNot Applicable
File nameAmd64_microsoft-windows-iis-adsicompatibility_31bf3856ad364e35_6.1.7601.21747_none_462d6644112e44c9.manifest
File versionNot Applicable
File size19,626
Date (UTC)15-Jun-2011
Time (UTC)10:15
PlatformNot Applicable
File nameUpdate.mum
File versionNot Applicable
File size3,120
Date (UTC)15-Jun-2011
Time (UTC)13:58
PlatformNot Applicable
File nameWow64_microsoft-windows-iis-adsicompatibility_31bf3856ad364e35_6.1.7600.20986_none_4e6f73964889f145.manifest
File versionNot Applicable
File size19,626
Date (UTC)15-Jun-2011
Time (UTC)09:06
PlatformNot Applicable
File nameWow64_microsoft-windows-iis-adsicompatibility_31bf3856ad364e35_6.1.7601.21747_none_50821096458f06c4.manifest
File versionNot Applicable
File size19,626
Date (UTC)15-Jun-2011
Time (UTC)09:04
PlatformNot Applicable
Additional files for all supported IA-64based versions of Windows Server 2008 R2
File nameIa64_1856433de3f35bd7b0d33a8c8de41d30_31bf3856ad364e35_6.1.7601.21747_none_7189fb6f6240c911.manifest
File versionNot Applicable
File size1,066
Date (UTC)15-Jun-2011
Time (UTC)13:58
PlatformNot Applicable
File nameIa64_1e3be75c6ed1dc9ee10dccf00979e0eb_31bf3856ad364e35_6.1.7600.20986_none_918f62ef257e64ff.manifest
File versionNot Applicable
File size1,066
Date (UTC)15-Jun-2011
Time (UTC)13:58
PlatformNot Applicable
File nameIa64_microsoft-windows-iis-adsicompatibility_31bf3856ad364e35_6.1.7600.20986_none_e7fdd1b65bc9c710.manifest
File versionNot Applicable
File size19,623
Date (UTC)15-Jun-2011
Time (UTC)10:15
PlatformNot Applicable
File nameIa64_microsoft-windows-iis-adsicompatibility_31bf3856ad364e35_6.1.7601.21747_none_ea106eb658cedc8f.manifest
File versionNot Applicable
File size19,623
Date (UTC)15-Jun-2011
Time (UTC)10:04
PlatformNot Applicable
File nameUpdate.mum
File versionNot Applicable
File size2,347
Date (UTC)15-Jun-2011
Time (UTC)13:58
PlatformNot Applicable
File nameWow64_microsoft-windows-iis-adsicompatibility_31bf3856ad364e35_6.1.7600.20986_none_4e6f73964889f145.manifest
File versionNot Applicable
File size19,626
Date (UTC)15-Jun-2011
Time (UTC)09:06
PlatformNot Applicable
File nameWow64_microsoft-windows-iis-adsicompatibility_31bf3856ad364e35_6.1.7601.21747_none_50821096458f06c4.manifest
File versionNot Applicable
File size19,626
Date (UTC)15-Jun-2011
Time (UTC)09:04
PlatformNot Applicable