Problem Statement
There are three different cases that I have heard:
Issue 1: .Net 3.0 is removed but .Net 3.5 is on the box
On Windows Vista and Windows 2008 Server, .Net 3.0 is installed through Component-Based Setup (CBS). However, .Net 3.5 is installed through Windows Installer (MSI). Thus .Net 3.5 does not have a strong dependency on .Net 3.0. People could accidentally uninstall .Net 3.0 from the box. This would cause the section handlers (for <system.serviceModel> etc) for WCF removed from machine.config. However, any further .Net 3.5 patch would cause the WCF installer to run and it would install the following dangling elements into machine.config:
<system.serviceModel>
<extensions>
...
</extensions>
<client>
...
</client>
</system.serviceModel>
This would cause the application to fail with the following error:
System.Configuration.ConfigurationErrorsException: Unrecognized configuration section system.serviceModel. (c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\machine.config line 146)
Issue 2: .Net 3.0 is on the box but the WCF section handlers are removed
For some unknown reason, .Net 3.0 is not uninstalled from the machine. However, the WCF section handlers are accidentally removed when different orders of install/uninstall operations happened. The application would also fail with the same error as Issue 1 above.
Issue 3: Redundant Xml elements when configSource is used
Read more: Wenlong Dong's Blog