On .NET Framework 4.6.1 and Exchange compatibility

Update (October 2016): The information in this blog post is now outdated. Blocking of .NET 4.6.1 is not needed anymore, as long as relevant updates are installed. Please see this article for more information as well as Exchange Supportability Matrix for versions of .NET that Exchange Server supports.

We wanted to post a quick note to call out that since yesterday, the .NET Framework 4.6.1 has been made a recommended update on WU (Windows Update).

As we have already stated in the Exchange Supportability Matrix, at this time, this version of .NET framework is not supported by Exchange. In fact, we know of some issues if it is installed.

We are working with the .NET team to ensure that Exchange customers have a smooth transition to .NET Framework 4.6.1, but in the meantime, delay this particular .NET update on your Exchange servers (information on how this can be accomplished can be found in the KB article 3133990, How to temporarily block the installation of the .NET Framework 4.6.1).

Update 2/12/2016:

We had several questions on how our customers should go about rolling back to .NET Framework 4.5.2 if 4.6.1 was already automatically installed. Here are the steps:

  1. If the server has already automatically updated to 4.6.1 and has not rebooted yet, do so now to allow the installation to complete
  2. Stop all running services related to Exchange.  You can run the following cmdlet from Exchange Management Shell to accomplish this:  (Test-ServiceHealth).ServicesRunning | %{Stop-Service $_ -Force}
  3. Go to add/remove programs, select view installed updates, and find the entry for KB3102467.  Uninstall the update.  Reboot when prompted.
  4. Check the version of the .NET Framework and verify that it is showing 4.5.2.  If it shows a version prior to 4.5.2 go to windows update, check for updates, and install .NET 4.5.2 via the KB2934520 update.  Do NOT select 4.6.1/KB3102467.  Reboot when prompted.  If it shows 4.5.2 proceed to step 5.
  5. Stop services using the command from step 2.  Run a repair of .NET 4.5.2 by downloading the offline installer, running setup, and choosing the repair option.  Reboot when setup is complete.
  6. Apply the February security updates for .NET 4.5.2 by going to Windows update, checking for updates, and installing KB3122654 and KB3127226.  Do NOT select KB3102467.  Reboot after installation.
  7. After reboot verify that the .NET Framework version is 4.5.2 and that security updates KB3122654 and KB3127226 are installed.
  8. Follow the steps here to block future automatic installations of .NET 4.6.1.

Thanks to Marc, Nasir and Brett for testing the above to make sure it all works as expected!

Nino Bilic

Comments (17)
  1. Thanks for the immediate update on this topic.

  2. StephenKCEE says:

    Thanks Nino. I was just about to install .NET Framework 4.6.1 yesterday, as it was buried amongst many other .NET Framework 4.5.1 ‘Patch Tuesday’ Updates. Thankfully I checked the Exchange Supportability Matrix and un-checked it!

  3. MarcBeth says:

    Thanks Nino, does this issues affect Exchange 2010 as well?

  4. sime3000 says:

    Identifying the exact installed version of .NET Framework is unnecessarily convoluted.

    What is the procedure to safely remove .NET Framework 4.6.1 from an Exchange server if it is installed already?

    What is the procedure to safely remove .NET Framework 4.6 from an Exchange server if it is installed already?

  5. Nino Bilic says:

    @ MarcBeth: In short, .NET Framework 4.6.1 applies to Windows Server 2008 R2 SP1, Windows Server 2012 and Windows Server 2012 R2. As per the supportability matrix, it is currently not supported by any version of Exchange server that might run on any combination
    of mentioned server versions.

  6. @MarcBeth
    No version of .NET 4.6 is supported with Exchange 2010. Please see the Supportability Matrix for details.
    While Exchange 2010 technically only uses .NET 3.5 (or 3.5 SP1), installing .NET 4.6 (or 4.6.1) on an Exchange 2010 server (or any version of Exchange including Exchange Server 2016) is still not supported.

  7. Nino Bilic says:

    @Sime3000 – if the update to 4.6.1 was already installed, you can simply uninstall it. That will roll the machine back to the previous version that was installed before 4.6.1

  8. sime3000 says:


    What I was getting at was that its not easy to identify exactly what version of .NET Framework is installed and its not easy to identify which update to remove in Programs & Features. I don’t understand why the .NET folks have made this so convoluted – people
    don’t have hours to waste searching the registry or running some code to get these answers.

    I believe that the update to remove for .NET Framework 4.6 on Windows 2012 R2 is KB3045563 but its not obvious which update (KB#) to remove to uninstall .NET Framework 4.6.1 . What specific KB# is that ?



  9. Nino Bilic says:

    @Sime – ah I see; yeah… personally I feel the readability of the whole WU update history can use some improvements…

    From what I see, the KB article in question and the update on WS 2012 R2 is listed as KB 3102467 (http://support.microsoft.com/en-us/kb/3102467)

  10. Note that after installing 4.6.x you will need to reinstall 4.5.2.

  11. FYI – In case you have .NET Framework 4.6.2 installed on your servers, here’s how to remove it:

  12. Marc Nivens [MSFT] says:

    FYI there are a few ways to check for the .NET framework version.

    1. HealthChecker.ps1 will tell you (https://gallery.technet.microsoft.com/Exchange-2013-Performance-23bcca58)
    2. Check the registry.

    Path: HKLMSOFTWAREMicrosoftNET Framework SetupNDPv4FullRelease
    If the number is greater than 394271, you have .NET 4.6.1 or later installed. .NET 4.5.2 will have a value between 379893 and 393297.

  13. Eddy1968 says:

    Hi guys,

    your last updates killed me 2 exchange 2016 servers! Great, thak you! And that without .Net Framework 4.6!
    What teh hel did you made?

  14. Jesse Reppin says:

    Greate Information

  15. Mike_O'Neill says:

    Was helping a customer this week and found a few patches, available since August 2015, that we had to remove to get back to 4.5.2. I’ve created a script to help customers find the 3 patches specific to Windows Server 2012 or 2012 R2 that need to be removed.


    I hope this helps customers quickly see which patches to remove, instead of scouring the internet and removing one at a time to get back to a supported .Net version.

  16. E-Expert says:

    Thanks Nino. In our environment, we run 3 Exchange 2013 servers where I have installed CU10 after this update (KB3102467) and are running smoothly. In this case, shall I follow the same removal process? Would that lead to any consequences since the update
    been installed before CU10? Thanks

  17. deiruch says:

    Problems like this are unprofessional.

Comments are closed.

Skip to main content