Welcome to MSDN Blogs Sign in | Join | Help

Notes from a dark corner

Debugging ASP.NET, the CLR and anything that uses clock cycles.

News

  • These postings are provided as is with no warranties, and confers no rights. Additionally, views expressed herein are my own and not those of my employer, Microsoft.
Version history of the CLR 2.0

[update 20/11/7 added .NET 2.0 SP1]
[update 15/11/7 added 4 new recent fixes]

Following on from my post about ASP.NET 2.0 fixes, summarised below are the Common Language Runtime (CLR) 2.0 major releases and hotfixes, in version number order. 

ASP.NET is a hungry consumer of the CLR services such as threadpool, garbage collection etc. Therefore many of the problems we see customers experience in production ASP.NET applications are the result of issues in the CLR - many of which we have already fixed. So it is always worth considering what patches you currently have installed when something weird happens.

Please read the caveats at the start of the ASP.NET 2.0 fixes post before proceeding.

As fixes are cumulative, your best bet at the time of writing would be to install MS07-040, a recent security bulletin for the Microsoft .NET Framework 2.0 that includes most of the fixes listed. (Version .832, see below). Make sure you read the known issues links in the KB article for the patch.

Most of the fixes touch a core file set and are therefore cumulative. Some of the fixes listed affect things like ILASM.EXE and therefore do not include previous fixes unless they were for the same file. We always try to minimise the file set affected by any given hotfix.

Version KB Description
2.0.50727.1433 n/a Microsoft .NET Framework 2.0 SP1 (included with .NET Framework 3.5)

2.0.50727.939

943412

You may experience delays when an operating system shuts down if the computer is running a managed service together with the .NET Framework 2.0

2.0.50727.930

942708

FIX: You may receive a "SerializationException" exception when you use a class that implements the "INotifyPropertyChanged" interface in an application that is built on the .NET Framework 2.0

2.0.50727.926

942084

FIX: Error message if you use the "CspParameters" class to programmatically set a password in an application that is built on the .NET Framework 2.0: "Incorrect PIN"

2.0.50727.926

942027

FIX: You may notice that the memory load is very high when you run an application that is built on the .NET Framework 2.0

2.0.50727.915 940900 FIX: You receive the NullReferenceException exception when you call the String.IsNullOrEmpty function in an application that is built on the .NET Framework 2.0
2.0.50727.888 935904 FIX: You receive the System.IndexOutOfRangeException exception error when you use a native image on an x64-based computer in the Microsoft .NET Framework 2.0
2.0.50727.885 937780 FIX: Error message when you use a smart card CSP together with the "RSACryptoServiceProvider.SignData" method in the .NET Framework 2.0
2.0.50727.879 936757 FIX: A deadlock may occur when two threads call a fusion API to access the same assembly in the .NET Framework 2.0
2.0.50727.878 936798 FIX: You may experience slow performance when you call certain X509Certificate2 constructors on a computer that is running the .NET Framework 2.0
2.0.50727.876 936707 FIX: A .NET Framework 2.0 managed application that has an Authenticode signature takes longer than usual to start
2.0.50727.873 936233 FIX: You may not obtain the correct value from the logical operation stack when you use the System.Diagnostics.Trace.CorrelationManager.LogicalOperationStack property in the .NET Framework 2.0
2.0.50727.832 928365 Description of the security update for the .NET Framework 2.0 for Windows Server 2003, Windows XP, and Windows 2000: July 10, 2007
2.0.50727.832 929916 Description of the security update for the .NET Framework 2.0 for Windows Vista: July 10, 2007
2.0.50727.827 935678 FIX: You receive an E_INVALIDARG exception when you call the IDispatchEx::GetDispID method on a managed COM component in the Microsoft .NET Framework 2.0
2.0.50727.821 934334 FIX: A memory leak occurs when a managed application uses a platform invoke call to call an unmanaged function in the .NET Framework 2.0
2.0.50727.821 934593 FIX: Random values may be written to the float parameters of some functions in a custom application that you create by using the .NET Framework 2.0
2.0.50727.821 934603 FIX: A method does not throw a custom exception type in the .NET Framework 2.0
2.0.50727.796 931338 FIX: Error message when you use DEVPATH environment variables in a .NET Framework 2.0 ASP.NET Web application: "Could not load file or assembly '<AssemblyName>' or one of its dependencies"
2.0.50727.789 930771 FIX: The managed heap becomes corrupted when you run a program that is built by using the Microsoft .NET Framework 2.0
2.0.50727.762   Microsoft .NET Framework 2.0 included with Windows Vista
2.0.50727.255 929688 FIX: A NullReferenceException error occurs when you run a .NET Framework 2.0 program
2.0.50727.255 929425 FIX: A memory leak may occur when you call a C DLL from a C# class that includes strings in the .NET Framework 2.0
2.0.50727.250 929023 FIX: A FileNotFoundException exception may occur when you run a .NET Framework 2.0 application that uses no-touch deployment on a Web server that is URL case-sensitive
2.0.50727.248 928382 FIX: Error message when you use the MSIL Assembler (Ilasm.exe) to compile a Visual Studio project: "Invalid TypeDefID of exported type"
2.0.50727.247 928870 FIX: An exception is not handled correctly when you use a try-catch block to handle an exception from multi-threads in the .NET Framework 2.0
2.0.50727.241 926997 FIX: Error message when a COM client calls a managed COM component to expose events in the .NET Framework 2.0: "0x80040201 - An event was unable to invoke any of the subscribers"
2.0.50727.238 928569 FIX: The first CLR thread pool worker thread is never initialized for COM+ in an ASP.NET Web application that is configured to run under the .NET Framework 2.0
2.0.50727.236 926595 FIX: Server garbage collector threads may enter an endless loop condition in the .NET Framework 2.0
2.0.50727.235 926776 A hotfix rollup package is available that resolves the problems that are described in KB articles 913297, 913393, 918995, and 924895
2.0.50727.232 927146 FIX: A .NET Framework 2.0-based application may experience an ArgumentNullException exception and may exit unexpectedly
2.0.50727.229 926660 FIX: Error message when you run an application in the .NET Framework 2.0: "System.IO.FileNotFoundException"
2.0.50727.226 926594 FIX: The ThreadPoolMgr::WorkerThreadStart process may become locked in a loop condition in a .NET Framework 2.0-based application, and CPU utilization may increase to 100 percent
2.0.50727.226 926596 FIX: A Microsoft .NET Framework 2.0-based application may crash during the garbage collection process when you use the Native Image Generator tool and a generic method
2.0.50727.208 924895 FIX: An application that is based on the .NET Framework 2.0 may crash unexpectedly
2.0.50727.201 923781 FIX: You may encounter a System.NullReferenceException exception when you call a COM interface method in the .NET Framework 2.0
2.0.50727.198 924289 FIX: The application process may unexpectedly stop when you run a managed application that is based on the .NET Framework 2.0, or the server may shut down when you run managed code in SQL Server 2005
2.0.50727.190 923326 FIX: The call stack is missing frames when you debug a .NET Framework 2.0 application that uses COM interoperability
2.0.50727.187 923319 FIX: Error message when you compile MSIL code into an executable program in the .NET Framework 2.0: "IndexOutOfRangeException"
2.0.50727.187 923325 FIX: When you use the Native Image Generator (Ngen.exe) in the .NET Framework 2.0, the size of the stack frames increases significantly
2.0.50727.186 923299 FIX: Sos.dll leaks memory when you use an external debugger tool to debug an application in the .NET Framework 2.0
2.0.50727.168 921118 FIX: Error message when you try to compile a large intermediate language file by using the Ilasm.exe tool in the .NET Framework 2.0: "Duplicate global label '_MF_LIT_530223'"
2.0.50727.166 917868 FIX: An exception is not raised to the managed caller when you implement a custom marshaler in a .NET Framework 2.0 application
2.0.50727.166 918426 FIX: A Visual C# 2005 project may take significantly longer to compile after you port the project from Visual C# .NET 2003
2.0.50727.166 921217 FIX: A deadlock may occur when you use COM interop cross-context interface marshaling in the .NET Framework 2.0
2.0.50727.158 919514 FIX: When you use the MSIL Assembler in the .NET Framework 2.0 to generate a PE file from the MSIL code, the PE file may close unexpectedly, and you may receive an access violation error message
2.0.50727.109 918642 FIX: A .NET Framework 2.0-based application may require read/write permissions to a registry key even though the application only has to read the registry key
2.0.50727.104 918254 FIX: A .NET Framework 2.0-based application may not be able to associate a private key with an X509Cetificate2 object
2.0.50727.103 917507 FIX: JIT compilation may take much longer when you run a .NET Framework 2.0 application on a 64-bit computer
2.0.50727.101 918102 FIX: The common language runtime throws ThreadAbortException exceptions when you call the Thread.Abort method to stop an ASP.NET request in the .NET Framework 2.0
2.0.50727.100 917559 FIX: The debugger moves to the next .line directive when you set a breakpoint on a statement and the statement is related to a .line directive that does not contain a column range in the .NET Framework 2.0
2.0.50727.98 917882 FIX: A synchronized method that has security callouts may not save a return value after control returns to the calling function in an application that is built by using the 64-bit version of the .NET Framework 2.0
2.0.50727.94 917495 FIX: You may receive an OutOfMemoryException exception when you run a .NET Framework 2.0-based application
2.0.50727.94 917493 FIX: Internet Explorer may freeze when you click a link to start a .NET Framework 2.0 client application in Internet Explorer and another file download is already in progress
2.0.50727.87 915430 FIX: Not all paths that are specified in the DEVPATH environment variable will be considered by the .NET binding infrastructure (fusion) in the .NET Framework 2.0
2.0.50727.87 917316 FIX: A regeneration of the 32nd Ngen image may not trigger a recompilation of the Ngen image when you use the Native Image Generator in managed code on a computer that is running the .NET Framework 2.0
2.0.50727.86 915980 FIX: You may receive a "security exception" error message on a Windows 2000-based or Windows Server 2003-based computer that is running an ASP.NET 2.0-based application
2.0.50727.86 915980 FIX: You may receive a "security exception" error message on a Windows 2000-based or Windows Server 2003-based computer that is running an ASP.NET 2.0-based application
2.0.50727.74 915088 FIX: The .NET Framework 2.0 Thread.IsThreadPoolThread property always returns a value of false, and the SQL Server 2005 Reporting Services log file grows uncontrollably
2.0.50727.71 913469 FIX: An application that is built on the Microsoft .NET Framework 2.0 may stop responding when you run the application on a 64-bit computer
2.0.50727.63 913384 FIX: A .NET Framework 2.0 application that runs under a user account context when no user profile is associated with the user account context may crash, or you may receive an access violation error message 
2.0.50727.63 913382 FIX: Windows Error Reporting crashes when the Sos.dll file is loaded in memory in the .NET Framework 2.0
2.0.50727.56 912891 FIX: When you run a 64-bit application that was built by using the .NET Framework, you may notice that the application uses more memory than a similar 32-bit application
2.0.50727.52 912365 FIX: An assembly that uses the System.Data.SqlXml namespace may be dynamically rebased and reloaded after you use the Native Image Generator (Ngen.exe) tool in the .NET Framework 2.0
2.0.50727.42   Microsoft .NET Framework 2.0

 

That's it for now!

Doug

Posted: Thursday, September 06, 2007 11:01 AM by dougste
Filed under: ,

Comments

This Old Code said:

# September 6, 2007 10:27 AM

dougste said:

Thanks Aaron (of 'This Old Code'), you're welcome!

As an escalation engineer in Microsoft's support organisation it's part of my role to provide technical detail to go into the hotfix articles.  There are others involved in the publication process so I do not always have complete control over the final wording that appears but I certainly appreciate the need to make articles as useful as possible.

Thanks for the feedback!

Doug

# September 6, 2007 11:49 AM

Development 4.0 said:

Know your CLR 2.0 versions

# September 6, 2007 12:27 PM

CoqBlog said:

Ca, ça peut être très pratique : Notes from a dark corner : Version history of the CLR 2.0 Une historique

# September 16, 2007 11:40 AM

Notes from a dark corner said:

This is a number that is going to become very familiar to me over the coming months and probably years.

# November 22, 2007 4:25 AM

Noticias externas said:

This is a number that is going to become very familiar to me over the coming months and probably years

# November 22, 2007 4:35 AM

jesperjfj said:

Hi Doug

We have received a report where our product was running in .Net 3.0 mode, but where .Net 3.5 had been installed. I can see that this changes the version of aspnet_wp.exe to .1433. The worker process died and left this clue in the event log. It is reproducible. How do we best address this quite fatal error?

Best regards

Jesper Jørgensen, Sitecore

Faulting application aspnet_wp.exe, version 2.0.50727.1433, stamp 471ebf4c, faulting module kernel32.dll, version 5.1.2600.3119, stamp 46239c31, debug? 0, fault address 0x00012a5b.

aspnet_wp.exe  (PID: 1620) stoppede uventet.Yderligere oplysninger finder du under Hjælp og support på

# December 14, 2007 10:28 AM

dougste said:

Hi Jesper

One option is to raise an assisted support case with Microsoft support. We have a bunch of talented support engineers ready to assist troubleshoot such issues with you. If it turns out to be due to a Microsoft bug there is no charge. And maybe you already have a support contract with us or support incidents available through an MSDN subscription or through having Partner status?

The other option is to DIY debug it. Grab a memory dump at process shutdown and then use the debugging tools to figure out what happened.

My colleague Tess has a very details blog showing how to do this kind of debugging. See the first link under "Blog I recommend" above left.

Regards

Doug

# December 14, 2007 10:44 AM

JamesBuddell said:

Very useful list, thank you!. Just found one extra version that's not covered, see: http://support.microsoft.com/kb/923028

# June 30, 2008 6:15 AM
Anonymous comments are disabled
Page view tracker