Exchange 2013 CU16 and Exchange 2016 CU5 .NET Framework Requirement


As mentioned in the release posts for Exchange 2013 CU16 and Exchange 2016 CU5, both of these Exchange versions now require .NET framework 4.6.2 on all supported OS platforms.  This post focusses on Windows 2012 and 2012 R2 installations, see note below about Windows 2016.

Exchange setup will check for the presence of the required .NET framework, if not present setup will halt.

This is also true when extending the AD Schema and preparing Active Directory.  If the machine where you are running the AD preparation commands does not have the required .NET framework, then the installer will log an error.   In the below example a Windows 2012 R2 domain controller, the Schema Master FMSO role holder, was used to initiate the PrepareSchema command.  This failed due to .NET not being updated on that server where the Exchange 2013 CU16 setup command was being executed:

setup.exe /IAcceptExchangeServerLicenseTerms /PrepareSchema

Exchange Setup Halted Due To Unsupported .NET Framework Version

For make benefit, most glorious search engines:

Microsoft Exchange Server 2013 Cumulative Update 16 Unattended Setup

Copying Files...
File copy complete. Setup will now collect additional information needed for installation.

Performing Microsoft Exchange Server Prerequisite Check

    Prerequisite Analysis                                                                                                 FAILED
This computer requires .NET Framework 4.6.2 (
https://support.microsoft.com/kb/3151802).
For more information, visit:
http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.MinimumFrameworkNotInstalled.aspx
The Exchange Server setup operation didn't complete. More details can be found in ExchangeSetup.log located in the<SystemDrive>:\ExchangeSetupLogs folder.

If setup was launched on a Exchange server which was missing the .NET update, the same error will be logged.  This will be after the additional pre-flight checks are performed.

Exchange Setup Halted Due To Unsupported .NET Framework Version

 

Verify .NET Framework Version Installed

MSDN documents How to: Determine Which .NET Framework Versions Are Installed.  In the .NET 4.5 and 4.6 versions we can review the Release key in the registry which is located under:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

Consult the MSDN reference article for all of the details.  In short, current server versions will typically report the below values.  If you do not have a value of 394806 on a Windows 2012 R2 system then it is time to upgrade .NET.

Release OS .NET Version
394271 Non Server 2016 Systems 4.6.1
394802 Windows Server 2016 4.6.2
394806 Non Server 2016 Systems 4.6.2

We can check this quickly using PowerShell:

Get-ItemProperty -Path "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" | Format-List Release

 

Verify .NET Framework Installed Using PowerShell

However, before upgrading .NET please review the next section.

Upgrading to Exchange 2013 CU16 or Exchange 2016 CU5

Since .NET 4.62 framework support was first added in Exchange 2013 CU15 and Exchange 2016 CU4 (for Windows Server 2012 and 2012 R2) this adds an upgrade step.  Framework 4.6.2 is not supported on earlier versions of Exchange when installed on Windows 2012 and Windows 2012 R2.  Exchange 2016 CU3 when installed onto Windows Server 2016 required .NET 4.6.2 though at the time of writing most customers are not in this position.

This means that you must consider the currently installed CU and also the currently installed .NET framework when planning this upgrade.

Ideally Exchange 2013 servers will already be on CU15, and Exchange 2016 servers will already be on CU4.  If this is the case then .NET can be upgraded prior to installing Exchange 2013 CU16 and Exchange 2016 CU5.  However if this is not the case then you cannot upgrade directly to the latest CU, you must:

  • Upgrade to Exchange 2013 CU15 or Exchange 2016 CU4
  • Only then perform the .NET upgrade to 4.6.2
  • Then upgrade to Exchange 2013 CU16 or Exchange 2016 CU5

 

Note: If upgrading to a newer CU, doing .NET upgrade and then to a later CU be sure to allow time for the .NET optimisation process to complete after .NET upgrade.  The .NET upgrade requires a reboot, and after the OS has restarted Exchange setup cannot start until the .NET optimisation process has completed.  This may take 30 minutes - see comments about running ngen.exe to speed this process up

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319.1  ngen.exe executeQueuedItems

 

Please plan accordingly to ensure that .NET and Exchange are updated correctly in the right order.  You may also need to update additional machines if you require that separate teams must execute the AD and domain preparation steps.  This is common in larger customers, since the Exchange administrators will not have Enterprise Admin or Schema Admin rights in AD.

After updating .NET to 4.6.2 on the Schema Master, the Active Directory and domains can now be prepared.

After Updating .NET Framework to 4.6.2 Exchange Setup Completed

Cheers,

Rhoderick

Comments (50)

Cancel reply

  1. Vyacheslav says:

    Add .net setup in Exchange CU and install it prior CU? Nah… Lets make double upgrade!

    1. You can install It prior if the machine was already fully updated to CU15 Vyacheslav.

      If not, then it is a two step process.

      Cheers,
      Rhoderick

  2. ac513 says:

    To clarify about the schema preparation steps– .NET 4.6.2 must only be installed on the machine you’re extending the schema from? Or does .NET 4.6.2 need to be installed on all domain controllers?

    1. On the machine used to prepare AD and domain(s). To illustrate the point that setup will check for the right .NET framework version.

      Cheers,
      Rhoderick

  3. turbomcp says:

    Thanks a lot for that info

  4. Rajesh Varghese says:

    I am struck up in my exchange installation. I have a exchange server 2013 with a single server setup (Windows 2012). I installed .net 4.6.2 and then ran CU16 setup. All went fine, but stage 9 generated some strange error and setup quit. I restarted the setup and after few times, the installation completed. But now exchange web services stopped now. I can’t open ECP or OWA. Connection over NTLM works fine, but nothing else. .net 4.6.2 is not visible in IIS application pools.

    Can anybody help me to fix this up please?

    1. Rajesh – what CU was installed before you started the CU16 upgrade?

      And look for errors in the C:\ ExchangeSetupLogs Directory

      Cheers,
      Rhoderick

  5. RKast says:

    You mention we need to wait for .net optimalisation 30-60 min. This can be speed up with running C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319.1
    ngen.exe executeQueuedItems

    1. Have you benchmarked the difference in time taken when running that, curious as to the delta.

      On the systems I was looking at this week, the mscorsvw.exe processes were executing and using 6% of CPU. The VM had 64GB RAM, two sockets each of which had 8 cores.
      That took 20-25 mins, so we called it lunchtime!

      Cheers,
      Rhoderick

      1. Rkast says:

        No did not benchmark. But it was done pretty quick not even close to 20 min 🙂 But indeed good excuse for smoke/drink/lunch pause at customer 🙂

        1. I added a reference to this above – thanks for commenting.

          The other customers I’ve been working with were already on the CU updates that supported .NET 4.6.2 so they never experienced this. As .NET was updated weeks ago, so they were prepared for when the requirement changed. This customer had to do the CU15, .NET and CU16 all in the same go. Hence it was more noticeable.

          Cheers,
          Rhoderick

          1. Jakub says:

            You don’t need wait so long time. This Framework installs about 2-5 minutes. You need only before You will start install framework stopping all exchange services and some time “Distributed Transaction Coordinator”.

          2. Ganesh G says:

            How to know if the .net optimization is completed or not?
            coz we are upgrading CU13 to CU15 & then to CU16 on the same day.
            Please clarify.

      2. When it comes to .NET optimization performance there is always the “it depends” rule. Escpecially, when running in a virtualized infrastructure. I like the fact that the wait time is mentioned, as this is not always the case in other posts.

        1. Exactly Thomas!

          A single post will never cover all eventualities, so it is up to the consultant to implement what is best for a given environment.

          In this case we decided that the most prudent option was Get-Lunch.

          Cheers,
          Rhoderick

  6. Arend van dijk says:

    Great blog, thnx Rhoderick!

  7. Hello Rhoderick ,

    Thank you and it is really informative .

    I just wanted to clarify one of my question .I could see that Exchange 2013 CU16 has given the fix for the issue which is described in the knowledge base (KB4013606)

    In my environment i have below mentioned issue which is described on this forum , Will this be rectified if i upgrade my exchange 2013 CU15 to CU16.

    Forum Link : https://social.technet.microsoft.com/Forums/en-US/af23ad15-0a87-46a4-9a2e-6992c789af0c/noderunnerexe-high-cpu-usage?forum=exchangesvravailabilityandisasterrecovery

    Problem Description : In short i could explain you that in one of my exchange server noderunner.exe is utilizing maximum CPU when i activate/mount anyone of the mailbox database copy in that server.You can get more details about the issue on the forum link.

    1. Hi Nithyanandham – that KB refers to a different issue.

      I would still move the server forward, as that will be one the first things that support will question you on.

      Cheers,
      Rhoderick

  8. JohnnyM2000 says:

    Great article, thanks Rhoderick.
    Quick question about the upgrade process of the .NET Framework to 4.6.2:
    If currently .NET 4.5.2 is installed under Exchange 2013 CU15, should I use any .NET 4.6.2 installer (Web- or Offline) to upgrade or is there a different/better way?

    Thanks.

    Cheers,
    John

    1. I personally prefer the offline installer. It is a one time download, and done.

      Cheers,
      Rhoderick

  9. Andreas S says:

    I had strange issues when upgrading to CU16 on a Windows Server 2012 that has been running RTM before.
    It’s working fine now as i managed to fix it but i wanted to ask if maybe someone has had similar issues.
    First thing i noticed is that the Hub Transport is back in the connectors when it definitely wasn’t there before.
    Then what happened (very awkward) was that suddenly mails didn’t get delivered anymore AT ALL. Gladly it was on a downtime allowed weekend as it took me a while to figure out that an Exchange service (the german name is Transportzustellungsdienst or similar, transport delivery?) was suddenly running as the user NT-AUTHORITY\SYSTEM, when none of the other services were running under that user so it really stuck out in the Services console. I changed that back to the proper user and mails started flowing in again.
    Anyway, i just wanted to share that experience and maybe someone has had a similar issue or an idea how this could have happened.
    Best Regards,
    Andreas

  10. Michael says:

    Wow, I sure am lucky then. The night before I read this article, I upgraded two servers (one on CU10, one on CU11) to CU16 and just threw on .NET 4.6.2 right before. I rebooted then went right into the CU installation and it all completed without a hitch (and users ran fine today). So it is probably not a good idea, but it also just might work…

  11. x says:

    What is the purpose of a Cumulative Update that isn’t?

    Also install .net and wait 30 minutes? Really?

    Always messing up one way or another.

  12. David-Mac says:

    If upgrading a server farm do I need to upgrade all servers to CU4, then to CU5? I just need to be sure mailbox moves and such related to putting a node in maintenance mode will work between servers with running CU2 and CU5?
    Thanks

    1. Hi David,

      Not something I have personally verified, though I would expect the maintenance functions to work across CUs.

      Cheers,
      Rhoderick

  13. Marcel says:

    Hi Rhoderick,
    Excellent article.

    On the TechNet Website its says:
    “If you’re upgrading to Exchange 2013 CU13, CU14, or CU15 from Exchange 2013 CU12 or earlier, we strongly recommend that you install Exchange 2013 CU13 before .NET Framework 4.6.1 and its related post-release fixes.”
    https://technet.microsoft.com/library/aa996719(v=exchg.150).aspx

    So a customer on CU11 should upgrade to CU13 ->.NET 4.6.1 -> CU15 ->.NET 4.6.2 ->CU16
    According to Microsoft

    1. Hi Marcel,

      CU11 – oh my! That is a 2015 release, how come the server is outdated like that? https://blogs.technet.microsoft.com/rmilne/2015/12/15/exchange-2013-cu11-released/

      I would also factor in this:
      https://technet.microsoft.com/en-us/library/ff728623(v=exchg.150).aspx

      And also if you are planning to be running on the intermediate CU, or immediately driving all the way forward to CU16.

      Cheers,
      Rhoderick

      1. troy nolen says:

        I was given guidance from a Microsoft Premier Service Engineer that this guidance is outdated. I am running CU14, was planning on going to CU17 this weekend, he said as long as you are immediately (within hours) updating to CU 15, 16 or 17, you can do the .Net 4.6.2 update on your older CU running Exchange box, reboot, then apply the latest CU. He said this was the official stance from Microsoft Support. So you may want to edit your blog.

        1. Thanks Troy. Remember that “not supported” != “not working”

          Neither of these support documents advocated that approach.
          https://technet.microsoft.com/en-us/library/ff728623(v=exchg.150).aspx
          or
          https://blogs.technet.microsoft.com/exchange/2017/03/21/released-march-2017-quarterly-exchange-updates/

          Cheers,
          Rhoderick

          1. Michael Gorn says:

            We are running Exchange 2013 CU9 with .NET 4.5. We would like to upgrade to CU17. What order should we be using to upgrade? Is it a 2 step process or a 3 step process?

          2. Joshua.Grier says:

            I have a similar question about the order of operations here for those of us who have been neglecting our exchange upgrades. I’m currently running 2013 CU 12 with .net 4.5.1 and from what I have gathered I can jump to CU 15 (which still supports 4.5.1), then install 4.6.2 (skipping 4.6.1 and the fixes), and finally finish the upgrade with CU 17. Does all that sound correct? On another note, does anyone know if you have to re-run the hybrid config setup after applying the CU’s? Thanks.

            1. That’s the sort of approach I would be looking at Joshua.

              You do not need to re-run the HCW after an update. That is required when:
              Deploying new version of Exchange (2010 -> 2016 for example)
              Changing the certificate used
              Adding accepted domain
              Removing accepted domain

              Cheers,
              Rhoderick

  14. ankur sharma says:

    why we are using .netframe work in exchange installation why this is prerequisite.

    1. Because Exchange was updated over the last releases to use managed code. That means it runs atop of .NET

      Cheers,
      Rhoderick

  15. Steve Bottoms says:

    Good afternoon! Running Ex2013 CU15 under Server 2012 R2 in a two-site DAG. Just installed CU15 in prep for installing CU16; tried installing .Net 4.6.1; told I had to install KB2919355 PACKAGE first; tried downloading, the MS page listed 6 different KBs to download, plus ClearCompressionFlag, with ZERO instructions on use or order. Downloaded all of those. 2919355 failed to install; “not valid on this computer”. Install all of the remaining five KBs; rebooted. Tried installing .Net 461; said 2919355 needed to be installed. Tried installing 2919355; said package wasn’t valid for this computer. At a dead halt on this Exchange 2013 server. Suggestions? ~Steve

  16. hkhanzadeh says:

    Hello every body
    Yesterday I tried to upgrade my exchange server 2013
    Name : EXCHANGE2
    Edition : Enterprise
    AdminDisplayVersion : Version 15.0 (Build 847.32)
    To Exchange Server 2013 CU16, but I receive error:
    “There was a problem accessing the registry on this computer. This may happen if the Remote Registry service isn’t running. It may also indicate a network problem or that the TCP/IP Netbios Helper service isn’t running.”
    1- I don’t have running firewall on my server 2012 R2
    2- .NET Framework is installed
    a. Version : 4.6.0159
    b. Release : 394806
    3- Both services Remote Registry and TCP/IP Netbios Helper is started
    4- File and printer sharing is active too

    Please guide me what should I do.
    THX

    1. Please review the Exchange setup log in the C:\ExchangeSetupLogs folder – that is far more detailed.

      Cheers,
      Rhoderick

      1. hkhanzadeh says:

        Thanks,
        but I con’t find any answer to my problem.

  17. How to know if the .net optimization is completed or not?
    coz we are upgrading CU13 to CU15 & then to CU16 on the same day.
    Please clarify.

    1. Simplest way is to watch task manager – check to see what is taking CPU cycles.

      I have a second post on that in draft. Just not enough hours in the day….

      Cheers,
      Rhoderick

  18. Ed says:

    Hello All,
    I am working with a customer (just last night) that had a .NET FW update to 4.7 and it train-wrecked his Exchange (among other issues he had in his environment.
    The customer is on E2013 with CU7.
    Last night, after doing many searches for answers is when I come across this blog post about the keyhole approach to getting E2013 upgraded properly.
    CU15 –> .NET FW 4.6.2 –> CU17/18 (latest)

    Only one problem… the CU15 download links have been pulled. Cant get it anymore.

    So, how are people supposed to use this kehole approach when the versions are not available anymore? The only downloads are the ones for 16/17/18 which is after the fact for .NET FW.

    I have seen several posts which contradict the need to do a keyhole install at all… just update .NET FW 4.6.2, then roll into the CU18 upgrade afterwards.

    What am I to do in this situation? Where is the downloads I need to get the keyhole approach done, as I would rather follow that path if possible.

    Or is there an official *Supported* upgrade path that does not require me to do a double hop upgrade, and if so… WHY ARE THERE NO DOWNLOADS AVAILABLE to help me accomplish that? 🙂

    Thanks
    Ed

  19. Azure-Amjad says:

    HI,

    I would like to ask you an important question in regards to Exchange updating the Active Directory schema and it would be so beneficial to get some insight and advice from you:

    I have done many Exchange updates and my understanding is:

    When you run the schema update from the Exchange Server, you have introduced one extra layer in the update process, as below:

    1. The Exchange Server first needs to connect to the Schema Master Domain Controller
    2. Import LDAP Files
    3. Update Schema with Exchange attributes

    When you run the schema update directly from the Schema Master Domain Controller, first and second steps above are eliminated from the process.

    As such, I always run the Schema update from the Schema master.
    Do agree that is makes sense to run the schema update on the schema master? Reason I ask is that some people frown saying that it is not best practice and not needed. Even in your example you are running it on the Domain Controller 🙂

    A little background: I am installing Exchange 2016 on a Windows 2016 Server. The FMSO DC is a Windows 2012 R2.
    All Servers are in Azure

    Many Thanks
    Amjad

    1. Hi Amjad,

      Manually performing the /PrepareSchema is my preferred method for many reasons. I want the control, I want to verify replication and the Exchange team does not always have the necessary rights. Because of that the task may have to be passed to an AD admin to perform the update.

      Regardless, we still must import the LDIF files and contact the Schema Master.

      There are some pre-flight checks in there regarding restarts. It might detect that there is one pending. Not something I have explicitly tested with /PrepareSchema only.

      Cheers,
      Rhoderick

      1. Azure-Amjad says:

        Hi Rhoderick,

        Thank you for you reply.
        Yes, I agree that manually performing the /PrepareSchema is the preferred method. If I have the rights and choice, then I prefer to always run it on the Schema Master. But yes, we don’t always have those rights and as such, have to either pass to the AD Team or run from the Exchange Server.
        Do you have any deep technical documentation which goes into the exact processes of what happens when you run the /PrepareSchema command?
        I completed a schema update last weekend. The client wanted me to run it on the Exchange server, after running into a few LDAP issues, I ran it on the Schema Master (my preferred method), worked a treat.
        Many Thanks
        Amjad

        1. Hi Amjad,

          Start with this:
          https://technet.microsoft.com/en-us/library/bb125224%28v=exchg.160%29.aspx?f=255&MSPPError=-2147217396

          We need network access to the Schema master, so if that is in a different AD DS site, or there is a connectivity block then it will fail with the symptoms you mentioned below.

          Cheers,
          Rhoderick

          1. Azure-Amjad says:

            Hi Rhoderick,
            It was in the same site, glitch with DC/GC. Thanks for that link, but I have that already. That link talks more about what changes are made and how to check. I was looking for something that goes far deeper into the exact process of what the actual PrepareSchema and PrepareAD command do when executed, and a much lower and technical level ie ports/protocols/traffic/files access etc
            Cheers
            Amjad

          2. Nothing documented on that as we expect and require no firewalls to be blocking access between Exchange DCs.

            Permissions that are set are in here:
            https://technet.microsoft.com/en-us/library/ee681663(v=exchg.150).aspx

            And you can find latest post on the blog has links to the schema changes.

            Cheers,
            Rhoderick

  20. Peter Van Gils says:

    Now that CU18 has been released, CU15 can no longer be downloaded. I need to upgrade an Exchange 2013 DAG that’s still on CU10. How do I proceed?

    1. Craig says:

      I’m in the same boat. I can’t find CU15 anywhere to download.

Skip to main content