Though less than a month old, the bug reports against .NET 3.5 SP 1 are starting to pile up. While bugs are an inevitable part of any release, the way a company responds to them varies greatly. Microsoft's .NET division generally requires users to call product support for specific hot fixes, with widely available service packs only shipped once a year or two.

For users with previously working programs, it takes a lot of effort just to figure out that Microsoft, rather than the vendor, is the culprit. And once that is established, one still has to figure out which KB article references the needed hot fix. If the user and/or the developers do not figure it out right away, countless man-hours can be wasted.

Below is a list of the verified issues that we know about:

Serialization

When a generic class implements ISerializable and has a static delegate member that makes use of the generic type arguments, binary deserialization hangs (on a 32-bit system with Windows Server 2003) or throws an OutOfMemoryException (on a 64-bit system with Windows Server 2008).

Issue 361615

WinForms

In some circumstances a user can drag toolstrips from one MDI child Form to another. Imagine clicking a button on one document and having an entirely different one react.

Issue 361894

Reflection

ExecutionEngineException with ParameterInfo.GetOptionalCustomModifiers and GetRequiredCustomModifiers on 3.5 SP1. This bug in the pair of methods is affecting the popular framework, Rhino Mocks.

Issue 361606

WPF

.NET 3.5 SP1 breaks use of WPF under IIS. Seems some people have been using WPF to generate images in real time for web sites. Unfortunately, WPF no longer seems to work under IIS.

Issue 361469

Type Checking

Under certain circumstances, a class that works under 3.5 will not pass PEVerify when run under 3.5 SP1. Essentially this means you will get a type load exception if you try to use the class at runtime.

Issue 361539

Numerics

Spurious "The operation overflows at compile time in checked mode" This is a bug in the new Semantic Error Checker for C#. It is triggered when subtracting 2 from ulong.MaxValue.

Issue 361823