.NET Framework 4.7 and Exchange Server

Published Jun 13 2017 07:06 AM 140K Views

Update 6/15/2017: Added a clarification that .Net Framework 4.7 has shipped and that we are still validating this release with Exchange Server.

We wanted to post a quick note to call out that our friends in .NET have released the .NET Framework 4.7 to Windows Update for client and server operating systems it supports. We are in the process of validating Exchange Server on the .NET Framework 4.7, but the work is not yet complete. We will be sure to release additional information and update the Exchange supportability matrix when .NET Framework 4.7 is supported with Exchange Server. We are working with the .NET team to ensure that Exchange customers have a smooth transition to .NET Framework 4.7, but in the meantime, please delay this particular .NET update on your Exchange servers. Information on how this block can be accomplished can be found in article 4024204, How to temporarily block the installation of the .NET Framework 4.7.

It’s too late, I installed it. What do I do now?

If .NET Framework 4.7 was already installed, we recommend you back to .NET Framework 4.6.2 Here are the steps:

Note: These instructions assume you are running the latest Exchange 2016 Cumulative Update or the latest Exchange 2013 Cumulative Update as well as .NET Framework 4.6.2 prior to the upgrade to .NET Framework 4.7 at the time this article was drafted. If you were running a version of .NET Framework other than 4.6.2 or an older version of Exchange prior to the upgrade of .NET Framework 4.7, then please refer to the Exchange Supportability Matrix to validate what version of .NET Framework you need to roll back to and update the steps below accordingly. This may mean using different offline/web installers or looking for different names in Windows Update based on the version of .NET Framework you are attempting to roll back to if it is something other than .NET Framework 4.6.2.

1. If the server has already updated to .NET Framework 4.7 and has not rebooted yet, then reboot 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. Depending on your operating system you may be looking for slightly different package names to uninstall .NET Framework 4.7.  Uninstall the appropriate update.  Reboot when prompted.
  • On Windows 7 SP1 / Windows Server 2008 R2 SP1, you will see the Microsoft .NET Framework 4.7 as an installed product under Programs and Features in Control Panel.
  • On Windows Server 2012 you can find this as Update for Microsoft Windows (KB3186505) under Installed Updates in Control Panel.
  • On Windows 8.1 / Windows Server 2012 R2 you can find this as Update for Microsoft Windows (KB3186539) under Installed Updates in Control Panel.
  • On Windows 10 Anniversary Update and Windows Server 2016 you can find this as Update for Microsoft Windows (KB3186568) under Installed Updates in Control Panel.
4. After rebooting check the version of the .NET Framework and verify that it is again showing version 4.6.2.  You may use this method to determine what version of .NET Framework is installed on a machine. If it shows a version prior to 4.6.2 go to Windows Update, check for updates, and install .NET Framework 4.6.2.  If .NET Framework 4.6.2 is no longer being offered via Windows Update, then you may need to use the Offline Installer or the Web Installer. Reboot when prompted.  If the machine does show .NET Framework 4.6.2 proceed to step 5. 5. After confirming .NET Framework 4.6.2 is again installed, stop Exchange services using the command from step 2.  Then, run a repair of .NET 4.6.2 by downloading the offline installer, running setup, and choosing the repair option.  Reboot when setup is complete. 6. Apply any security updates specifically for .NET 4.6.2 by going to Windows update, checking for updates, and installing any security updates found.  Reboot after installation. 7. After reboot verify that the .NET Framework version is 4.6.2 and that all security updates are installed. 8. Follow the steps here to block future automatic installations of .NET Framework 4.7: The Exchange Team
Not applicable
Can't you please make sure that Windows Update takes care of this automatically? Is it that hard to automatically delay the update on servers running Exchange? I'd expect Windows Update to support this kind of rules.
Not applicable
I can't believe this. You release Exchange 2013 after Windows Server 2012 R2 is released, but it was not supported until a future CU. Now Microsoft is releasing a .NET framework version that Exchange does not support. It's ridiculous.
Not applicable

dream on buddy, dream on!

Not applicable
The link for the instructions to block future automatic installations is not working. Can you post those instructions directly or fix the link. Thanks
Not applicable
Hi Todd, the link is working for me and should be correct. However, here are the steps it outlines if you are still unable to reach it.
Not applicable
Hi Brian,

I think they are referring to the link in 'Item 8.' That does seem to be just the word 'here' in blue text.

The link higher up, at the end of paragraph 3 works just fine.

Not applicable
The link doesn't work for me neither.

Nothing happens. It's just blue text.

Please can you fix it or just copy/paste the link here?

Not applicable
Not applicable
That got sent prematurely. Here they are...

1. Back up the registry.

2. Start Registry Editor. To do this, click Start, type regedit in the Start Search box, and then press Enter.

3. Locate and click the following subkey: HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP

4. After you select this subkey, point to New on the Edit menu, and then click Key.

5. Type WU, and then press Enter.

6. Right-click WU, point to New, and then click DWORD Value.

7. Type BlockNetFramework47, and then press Enter.

8. Right-click BlockNetFramework47, and then click Modify.

9. In the Value data box, type 1, and then click OK.

10. On the File menu, click Exit to exit Registry Editor.

Not applicable
Ah! Thank you @StephenKCEE. Yes, that should be the same URL earlier in the article. I've sent a request to have the link repaired in the sentence.
Not applicable
didn't work for me.

It still installed .net 4.7!!!!!!!!!!

Not applicable
Is the DWORD value 32 bit or 64bit.

I cannot believe MS articles still don't make this distinction!

Not applicable
hi Daryl and sime3000, when I double check now in regedit, it's either DWORD (32-bit) or QWORD (64-bit) option to add; so whenever DWORD is mentioned I would assume it's 32-bit. Right?
Not applicable
Good point Daryl. As I recall every MS article I've ever seen has never included this obvious distinction.

After careful consideration I've come to the conclusion that it is either a lot of work for Microsoft to type those two digits in kb articles (63 or 32) or they really don't care about people that support their products in the field.

Not applicable

The 47 block didn't work for me either on Windows 2016. Seemed to be OK on Windows 2012 R2.

Not applicable
I installed this just a few mins ago, I only installed on my 2013 edge with cu16 on 2012r2, with .net4.6.2, it rebooted and somehow works, I'm able to send and receive email. Though I have an exising issue with this edge server, it will suddenly eat up all virtual mem, and sometimes the transport service will suddenly stop, figured I'd install the latest .net, I was about to rebuild the vm, but now I'll see if it actually fixes it. Is it supposed to instantly break exchange after installing?
Not applicable
To Carlo-it, June 13, 2017,

What did you do to solve the problem of the sudden disappearance of your virtual mem?

Not applicable
+1 my customer reported Processor reduction after mistakenly installing it and they are not willing to uninstall the update even after sharing this blog.

I can't understand why .net team does not talk to Exchange team before releasing it or why can't they add a prerequisite check to do not install if it is an exchange server.

Not applicable
Are they really friends in the .NET team? :)

I gently suggest that you as a company handle this another way, the update should not be visible on Exchange server where is not combatable. Updates from MS has been very stable for many years now, and technicians will probably roll out the update.

So for MS creditable please escalate this and make sure it's is not available on where is not compatible.

Best regards


Not applicable
This procedure at step 5) doesn't seem to work for Windows 2016 Server and Exchange 2016.

How do you repair the Windows 2016 Server .Net 4.6.2 install?

Not applicable
The article does not mention why - what happens when the 4.7 framework gets installed? Does "not supported" mean "I am on my own" or "everything stops working"?
Not applicable
go to Exchange online, than you don't have to deal with this;-)
Not applicable
It's a shame, MS (facepalm)

Does the NET Framework team do not communicate to the others, especially Exchange team?

Not applicable
I think the exact same thing happened with .Net 4.6.
Not applicable
.NET Framework, Windows Management Framework, and more... Exchange always seems to be on the list of "Oh, there are changes? We aren't ready for that."
Not applicable

What is the error symptoms after install 4.7?

client dropp connection? or somthing?

Not applicable
Thank you for the heads up. 3 questions please...

1. Is the framework not supported or actually breaks Exchange 2013 CU16?

2. If we put the registry key in to block 4.7, will WSUS show the Exchange server as missing an update? or does WSUS recognize the registry key as well and will show the server as not needing the 4.7 update?

3. If we put the registry key in to block 4.7, once Exchange DOES support 4.7, i'm guessing we will need to manually REMOVE the registry key as well, right?

Not applicable
So what's up with a new release of .NET not being transparently backward-compatible with previous versions? I wonder what other applications in addition to Exchange are affected by this.

Exchange 2016 on Server 2016 is an even more fun thing to deal with, since the new policy of installing all updates without any choice what to exclude. Thankfully I didn't approve it at my WSUS yet but I can just imagine a small shop without even a WSUS, this got installed for them automatically and they won't notice until some obscure problem (please tell us what problems this will cause!) pops up in their Exchange server.

Not applicable
I have accidentally installed .NET 4.7 on my Exchange 2013 installation. The server has auto-rebooted and that was 2 days ago... Everything is still working. Before I consider reverting to .NET 4.6.2, what is .NET 4.7 meant to have broken? ECP is working fine and there are no errors in the Event Viewer. Just because MS don't support it doesn't necessarily mean it won't work... Please elaborate on the "not supported" statement.
Not applicable
Do I put in the "Fix" in the registry on the Exchange servers or on the WSUS server?
Not applicable
If its not compatible then dont release it to any servers period.

thats the golden rule in IT from MS Risk Management papers if its not supported in one component in the server dont allow any servers to grab it until its supported.

Wasnt that the point of stopping those from unfortunately grabbing things? Extensive testing is fine - but everyone expects the .NET framework to be heavily tested and supported at rolleout afterall its not an afterthought product just about everything uses it!

Not applicable
I've installes 4.7 on all of my three 2013Cu16 DAG nodes and had no problems so far.

Could anybody clarify, what impact or errors the installation of .NET 4.7 will bring up? Are they occur just under certain circumstances, ever, in what confugurations?

My system ist up an running with 4.7, so, should I change it? What hazards will I face eventually, if I do not? There should be a little more transparency than just "it's not supportet" (even, if this message reached me just *after* installing 4.7).

Not applicable
any issues since?
Not applicable
I have accidentally installed .NET 4.7 on my Exchange 2013 installation. The server has auto-rebooted and that was 2 days ago… Everything is still working. Before I consider reverting to .NET 4.6.2, what is .NET 4.7 meant to have broken? ECP is working fine and there are no errors in the Event Viewer. Just because MS don’t support it doesn’t necessarily mean it won’t work… Please elaborate on the “not supported” statement.
Not applicable
any issues since?
Not applicable
Oh and why does the .NET installer not have a component checker built-in that prevents the installation if it detects Exchange? Isn't that the whole point of having an installer?
Not applicable
When running the 4.6.2 offline installer on 2012 R2 it's saying that a newer version is already installed, presumably because of updates newer than 4.6.2 RTM. How are we supposed to run a repair install in this scenario?
Not applicable
Sorry for the confusion about the "here" link; there is something really strange going on with it and I need to open up a bug with the blog platform. I also added a link to the fully spelled out KB article for temporary blocking.
Not applicable
Awesome, opened up Updates this morning on my Win2016/Exchange 2016 CU5 box: "A reboot is required to complete the installation of .NET Framework 4.7".

Made a checkpoint, fingers crossed, toes crosed and rebooted...

It's all good. It's in production for half a day now, no issues at all.

Not applicable
On win2016 you can't pick and choose updates (really annoying, as are most aspects of WU on 2016). After making the reg change I've found a reboot of the server is required to get WU to "drop" .net 4.7 out of the updates in its list. Rebooting WU service didn't seem to do it.
Not applicable
I have implemented the registry block, but when I go into Windows Update on Server 2016, it still shows up as available. Please advise on this situation. Will it just fail when I go to install the rest of the Windows Updates? Will it disappear the next time the server checks for Windows updates?

On a side note, I find this situation very disturbing. This already occurred with .net framework 4.6 and now on 4.7. Not every organization uses WSUS for their servers. Server 16 makes it very hard to control individual updates without it and unfortunately, due to the lack of support for Server 16/Win10 on WSUS versions running on Server 2008R2, I have clients that have WSUS, but do not have the capability to properly update Server16/WIN10 until I can get a server in place that can run WSUS 4.

Microsoft needs to do a better job here....I forgot, they don't really care about anybody that is not on Office 365....

Not applicable
update....just made the registry mod on Server 2012R2 and after an additional update check, it disappears. I guess I just have to wait for it to disappear on the Server 16 box...
Not applicable
How come this is still a thing. Most (smaller) on-premises installations do not stay up with the blog and will get stung with this (again). Surely there must be a way to automatically block incompatible Updates. Thanks~
Not applicable
Thanks Lee

This is an issue with large installations as well in that there is usually another group within the organization with some mechanism that is driving regular updates to OS components/roles/features such as .NET. Those other groups do not have the time or desire to research the dozens or hundreds of server based applications deployed within the organization to determine whether there is any potential impact from any and all Microsoft updates.

It appears that Microsoft does not understand how things work in the field, nor do they care.

Not applicable
Please NOTE, .NET Framework 4.6.2 never come to Windows Update, so you should install it by your own

Only .NET Framework 4.5.2 and 4.6.1 is available on Windows Update (4.6.1 is only available for Windows 7 and Server 2012 R2 on Windows Update)

Not applicable
This is ridiculous.

Exchange services are stuck at STOPPING. Can i remove .NET without turn off Exchange services??

Not applicable
I updated to Exchange 2016 CU5 from CU1 and also got the latest .NET 4.7 Framework (Didn't know about this issue at the time).

I have an issue with is database content indexing and I cannot fix it. I've tried many methods available online but nothing works. I'm getting MSExchangeFastSearch warning ID 1010 (An operation attempted against a FAST endpoint exprienced an exception. This operation may be retried. Error details: Microsoft.Exchange.Search.Fast.PerformingFastOperationException: An Exception was received during a FAST operation. ---> System.ServiceModel.FaultException: error CS2001: Source file 'Temp\tmpBA4D.tmp' could not be found).

I have also noticed the ContentIndexState within EMS was set to unknown (missing registry file) for some reason after the CU5 update it had nuked the registry file needed for the status of my mailbox database indexing! So I had to recover it from a backup. I then changed the status to 3,3 which means database crawling (attempting to rebuild) but still getting MSExchangeFastSearch Event ID 1010 warnings in Event viewer.

Webmail users are unable to search their mailbox since it looks for the cached indexing folder on the Exchange server, also users who have Outlook set to online mode. Lucky for me not many people user webmail! So as a temporary fix for Outlook users I have enabled Cached mode, which downloads a copy of their mailbox the local disk and I then rebuilt the Index within Outlook. This will then look at the local copy of the mailbox for the Index content.

I have also experienced an Issue when I restarted the server the Microsoft Exchange Transport Service stopped working and would not start, turns out my Veeam truncated to many transaction logs? never happened before until I updated to CU5 and .NET 4.7 so I had to move the mail.que file to another disk and it then started working.

I wish I never bothered to update! I don't want to attempt to downgrade to .NET 4.6.2 in case it messes things up more (I will wait for an MS update to fix it). I presume the problems I am having are related to the .NET 4.7 update but I'm not sure. If any of you guys are experiencing similar problems since updating to .NET 4.7 please can you comment. Or even better if you have a solution to my problem without downgrading .NEt please comment.

Not applicable
I've read you're issues but we also have an Exchange 2016 CU5 on Windows Server 2016 and it also did accidentally install the .NET 4.7 version. I've rebooted the machine and we have no issues. Nothing in the event viewer and all client connections are running well. I'm waiting for Microsoft to update this post and to finish checking before I revert the update because that will be a hassle for now and everything is working. I'm wondering if we're running into issues when updating to CU6.
Not applicable
Hi Peter,

Thanks for you reply. I think the issue I have was nothing to do with the update as you said your mail server is working fine even with .NET 4.7 installed.

I think the issue may be with my mailbox database, so my plan is to dismount the database and stop the following services "MS Exchange Search Host Controller" and "MS Exchange Search" delete the content index cache from the root of the database folder and run a couple of switches using ESEUTIL to check for errors etc. and then re-mount the database and start both services, then see if the problem persists. If it does I will have to create a new mailbox database and move all my mailbox's over. then attempt to re-build the content index cache.

Not applicable
One of the problems I encountered on Windows 2008R2 with Exchange 2010 SP3 Build 123.4 Rollup 17 is that my backup doesn't clear the logs after full or incremental backup.

I will revert to previous .NET again.

Version history
Last update:
‎Jul 01 2019 04:30 PM
Updated by: