For quite a few times, I heard customers would hit this issue after installing .Net 3.5 patches or repair 3.5 on Windows Vista or Windows 2008 Server. Basically the machine.config file contains some invalid Xml content and applications using configuration do not work, especially for IIS-hosted applications. The main problem is that the WCF 3.5 installer (WFServiceReg.exe) did not handle the different cases very well.
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 boxOn 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
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 boxOn 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
0 comments:
Post a Comment