This article lists information about breaking issues with the .NET Framework 2.0 Service Pack 2 (SP2) after you upgrade to the .NET Framework 3.5 Service Pack 1 (SP1). These issues are fixed in a .NET Framework 3.5 SP1 update.
For more information about the. NET Framework 3.5 SP1 update, click the following article number to view the article in the Microsoft Knowledge Base:
959209 An update for the .NET Framework 3.5 Service Pack 1 is available
The new dynamic data feature that is included in the .NET Framework 3.5 SP1 cannot navigate one-to-one relationships. Because of the inability to navigate one-to-one relationships, any attempt to create a dynamic data Web site that is running on an entity framework data model fails.
The ASP.NET browser cap feature is broken when the FrontPage Extension is installed. This problem occurs because the FrontPage Extension adds a hidden folder under the App_Browser folder that has a .browser file that contains metadata. ASP.NET generates an error when ASP.NET passes these files. This problem affects the clients who have the FrontPage Extension installed.
After you install the .NET Framework 3.5 SP1, a Web site that uses a derived version of the UpdateProgress control may encounter the following exception:
A ProgressTemplate must be specified on UpdateProgress control with ID 'id'.
This problem occurs because of a difference in behavior between the .NET Framework 3.5 and the .NET Framework 3.5 SP1. In the .NET Framework 3.5, the UpdateProgress control enforces the requirement of a ProgressTemplate property from the PreRender routine. A derived UpdateProgress control can subvert that requirement by overriding the OnPreRender event in the derived control. Therefore, the UpdateProgress control can avoid calling the base.OnPreRender event. In the .NET Framework 3.5 SP1, the UpdateProgress control uses the CreateChildControls method to instantiate the ProgressTemplate property. Therefore, the requirement is enforced at a different point in the page life cycle. Therefore, the OnPreRender technique cannot subvert the check.
The SGEN.exe tool generates an error and does not generate a serialization assembly while you use the SGEN.exe tool to generate an assembly that contains some types that have the [Obsolete (IsError = true)] property. However, the SGEN.exe tool should not prevent the .NET Framework from serializing non-obsolete types in the assembly.
Exchange Web services generate exceptions because of Windows Communication Foundation (WCF) issues. Each of the exceptions results in a failed request. Therefore, the Exchange service seems to be temporarily down or not working.
Changes to the just-in-time (JIT) optimization that are made in the .NET Framework 3.5 SP1 cause an incorrect promotion of fields to register. Therefore, JIT generates incorrect code. This problem only occurs when you use the cpblk instructions or the initblk instructions. These instructions are only emitted by the managed C++ compiler. This problem applies to code that is generated by JIT and by NGEN.
Obfuscated 1.1 assemblies may fail if the assemblies override certain methods in the .NET Framework. For example, this problem may occur if a .NET Framework 1.1 type overrides a virtual method, but the same type does not override the virtual method in the .NET Framework 2.0. This should not be a breaking change, because an implementation of the method still exists earlier in the inheritance hierarchy. However, if the virtual method is overridden, the virtual method is then built against 1.1, and then the virtual method is obfuscated, the obfuscated code does not work when the code is run in the .NET Framework 2.0 SP2 or in the .NET Framework 3.5 SP1.
In the .NET Framework 3.5 SP1, because of the changes that are made in checking a NULL value to support address space layout randomization (ASLR), a failure case causes an access violation in the runtime. This access violation manifests as an ExecutionEngineException exception. Additionally, the process is terminated.
When you create certain types in the runtime by using reflection as a product of deserialization, the runtime enters an infinite loop in 32-bit processes. In 64-bit processes, an out-of-memory exception occurs. The type must be a generic type that is instantiated by using a reference type. Additionally, the type must implement the ISerializable interface and contain a static field.
After you install the .NET Framework 3.5 SP1, you receive the following exception error message when a Web site is hosted under IIS:
This problem occurs whenthe following conditions are true:
The Web site that is hosted under IIS is running ASP.NET.
ASP.NET is using Windows Presentation Foundation (WPF) to generate images on-the-fly.
Relative hyperlinks inside XPS documents break and cause the application to crash. In XPS documents, when you browse a link to another location inside the same document, nothing happens. Or, the application that is hosting the XPS document crashes.
In the .NET Framework 3.5 SP1, the Geometry.Combine method creates more points or segments than the method creates in earlier versions. The point or path information that is generated by WPF uses 10 times the number of points to define a geometry path as in earlier versions. Earlier versions require three lines to define a relatively simple geometric shape or path. However, 30 lines are required in the .NET Framework 3.5 SP1.
After you install the .NET Framework 3.5 SP1, dynamic data cannot display foreign key IDs in a one-to-one relationship. Web sites or applications that are created by using ASP.NET dynamic data are broken because dynamic data assumes that property descriptors exist. Dynamic data uses the property descriptors to obtain labels for links.
The exception that is generated resembles the following:
HttpException (0x80004005): DataBinding: 'System.Web.UI.WebControls.EntityDataSourceWrapper' does not contain a property with the name 'Manager'.
You cannot delete links to the navigation properties that are not named the same as the type. This problem occurs when the type name differs from the navigation property that describes the relation of this type with another type.
The ADO.NET Data Services client enables a client developer to insert a new entity into the service and to associate that entity with other related entities. If the client is talking to a data service that is backed by a relational database, the schema rules of the database are enforced on inserts to the service. In databases, it is common to put a NOT NULL constraint on foreign keys in tables. In such a case, an insert to that table must include a foreign key to the related entity. However, because of a code defect in the ADO.NET client library, new entities and reference associations cannot be set at one time. Therefore, you cannot use the ADO.NET Data Services client together with common foreign key table constraints.
If the client library is tracking an object that is associated with one or more additional objects, you cannot delete an order object. This problem occurs because the library also tries to delete the references between the objects.
AutoCommit behavior in Oracle transactions is different in the .NET Framework 2.0 SP1 from the behavior in the .NET Framework 2.0 SP2. In the .NET Framework 2.0 SP2, if an application starts a transaction, completes the transaction, and then starts a new transaction on the same connection, all the commands that are executed in the second transaction execute in auto-commit mode. The changes that are made by those commands are committed to the database even if the transaction is rolled back.