Attempting to Install .NET Framework 3.5 on Windows Server 2012 R2 Fails with Error Code 0x800F0906 or “the source files could not be downloaded”, even when supplying source

In one of my prior posts, I mentioned a step required when installing .Net Framework 3.5 on Windows Server 2012 or later operating systems. Specifically, I mentioned the need to supply the source for the .Net files because this is one of the few components we do not stage to the component store on Windows Server 2012 and later. One of the bullets in the things to keep in mind section at the bottom of this blog reads:

If you are attempting to install .Net Framework 3.5 on Windows Server 2012, instead of specifying the install.wim, you need to specify the Sources\SxS directory on the DVD or if providing the source, the files in the SXS directory copied from the DVD are just for .Net Framework 3.5. You can host them on a share and supply them through the GUI or through Group Policy just like any other feature.

Recently one of my customers ran into an issue when attempting to install .Net Framework 3.5 on Windows Server 2012 R2 using the following command:

Install-WindowsFeature –name NET-Framework-Core –source F:\sources\sxs

F:\ is the mounted Windows Server 2012 R2 ISO.

Yet it still failed with the following error:

The request to add or remove features on the specified server failed. The source files could not be downloaded. Use the "source" option to specify the location of the files that are required to restore the feature. Error: 0x800F0906

Or if you doing this via the GUI, it will look something like the following:

Looking at the cbs.log file from the C:/Windows/logs/cbs directory, we see the following:

2014-09-22 14:27:18, Info CBS Not able to find package: Package_78_for_KB2966828~31bf3856ad364e35~amd64~~6.3.1.4 from the cached windows update index. [HRESULT = 0x800f090e - CBS_E_EMPTY_PACKAGE_MAPPING_INDEX]
2014-09-22 14:27:18, Info CBS Failed to find package: Package_78_for_KB2966828~31bf3856ad364e35~amd64~~6.3.1.4 from the index mapping [HRESULT = 0x800f090e - CBS_E_EMPTY_PACKAGE_MAPPING_INDEX]
2014-09-22 14:27:18, Info CBS Failed to get WU category/updateID for package: Package_78_for_KB2966828~31bf3856ad364e35~amd64~~6.3.1.4 [HRESULT = 0x800f090e - CBS_E_EMPTY_PACKAGE_MAPPING_INDEX]
2014-09-22 14:27:18, Info CBS Failed to get the category and update ID for package: Package_78_for_KB2966828~31bf3856ad364e35~amd64~~6.3.1.4, component: amd64_microsoft-windows-wpfcorecomp.resources_31bf3856ad364e35_6.3.9600.20708_en-us_a3b67b207d2057ab, file: PresentationHostDLL.dll.mui [HRESULT = 0x800f090e - CBS_E_EMPTY_PACKAGE_MAPPING_INDEX]
2014-09-22 14:27:18, Info CBS Exec: Missing files are found during staging attempt but failed to download content from WU. [HRESULT = 0x800f090e - CBS_E_EMPTY_PACKAGE_MAPPING_INDEX]
2014-09-22 14:27:18, Info CBS CommitPackagesState: Started persisting state of packages
2014-09-22 14:27:18, Info CBS CommitPackagesState: Completed persisting state of packages
2014-09-22 14:27:18, Info CSI 00000010@2014/9/22:19:27:18.968 CSI Transaction @0x69943b49e0 destroyed
2014-09-22 14:27:18, Info CBS Perf: Stage chain complete.
2014-09-22 14:27:18, Info CBS Failed to stage execution chain. [HRESULT = 0x800f0906 - CBS_E_DOWNLOAD_FAILURE]
2014-09-22 14:27:18, Error CBS Failed to process single phase execution. [HRESULT = 0x800f0906 - CBS_E_DOWNLOAD_FAILURE]

So why are we getting these errors despite supplying the source?

We released a security update in August 2014 that updates .Net components. The security updates are as follows:

KB2966828: MS14-046: Description of the security update for the .NET Framework 3.5 on Windows 8.1 and Windows Server 2012 R2: August 12, 2014

KB2966827: MS14-046: MS14-046: Description of the security update for the .NET Framework 3.5 on Windows 8 and Windows Server 2012: August 12, 2014

If either of these updates are installed, you will run into the above issue if your server does not have access to the Internet to pull the updated components.

How do we resolve this?

Since this customer’s servers do not have internet access, in their case, they did the following:

1) Uninstalled the security update

2) Installed .Net Framework 3.5 (which installed without error)

3) Reinstalled the update

Take a look at the following TechNet article for .Net Framework 3.5 deployment considerations:

https://technet.microsoft.com/en-us/library/dn482066.aspx

Here’s a link to the official Knowledge Base article on this issue:

https://support.microsoft.com/kb/3002547

How do you keep from running into this in the future?

I personally recommend that you proactively enable .Net Framework 3.5 on the server images and templates in your environment to prevent having to troubleshoot or take additional steps such as this going forward.

~ Charity .net Shelbourne