Enabling WCF HTTP Activation After Uninstalling Microsoft .Net Framework 4.0 Beta
While trying to install Windows Azure SDK I was stuck for quite a while with the following problem.
One of the prerequisites for Windows Azure SDK is to enable WCF HTTP Activation but trying to do that was always giving me the error: “An error occurred. Not all of the features were successfully changed.” Here are the steps I followed:
- On a Windows 7 machine click on Start button and search for “Turn Windows features on or off”; click on it once found
- Expand the tree under Microsoft .Net Framework 3.5.1
- Select Windows Communication Foundation HTTP Activation and click OK
The result of this workflow was the above mentioned error.
Investigation
The error above is very generic and you may receive it for any other Windows feature you turn on or off. In order to make sure the error comes specifically from enabling WCF you can do two things:
- Turn on only the WCF option (leaving all other options in the tree as is)
- Look at the CBS.log file available in:
%SystemRoot%\Logs\CBS
And search for errors caused by SMConfigInstaller.
The Problem
You will encounter this problem if you install .Net Framework 4.0 Beta 1 and uninstall it after that. I am not sure whether the issue is reproducible in the latest Beta delivered with Visual Studio 2010. The reason is that the uninstaller doesn’t clean up properly, and you end up with version 4.0 of SMConfigInstaller.exe under
%SystemRoot%\Microsoft.NET\Framework64\v3.0\Windows Communication Foundation
You can check the version of the file by right-clicking on it, and selecting Properties –> Details tab. The correct version should be 3.0.xxxx.
Solution
The issue is semi-easy to solve:) I write “semi” because 1.) it took me about 1 h to search in Web and try out different options 2.) you need to get around the Windows 7 (and Windows Vista) security model and 3.) you need to have the correct version of the file. You will be mostly concerned with 2.) and 3.)
Here are the steps you need to follow get to your end goal (all of this assumes of course you have admin rights):
- In Windows Explorer navigate to
%SystemRoot%\Microsoft.NET\Framework64\v3.0\Windows Communication Foundation - Right click on SMConfigInstaller.exe and select Properties –> Security tab
- Click on the Advanced button and select the Owner tab
- You need to change the owner from TrustedInstaller to your own user or local Administrators group
WARNING: Changing the owner for files in%SystemRoot%folder may introduce security risks for your system. - Once you change the owner you return back to the Security tab and need to click on Edit button to edit permissions. Select Full Control for the new owner else you will still not be able to modify or delete the file
- Confirm all you changes and go back to Windows Explorer
- From another machine where you have Microsoft .Net Framework 3.0 or 3.5 installed copy SMConfigInstaller.exe and put it in the folder above
- Make sure the version of the file is 3.0.xxxx by right-clicking and selecting Properties –> Details tab
- Follow the steps at the beginning of the post
In order to reinstate the security of your system is recommended to revert back the owner of the file to TrustedInstaller.

