Update
The ASP.NET Core 2.3 end of support date was updated from April 7, 2027 to April 13, 2027 to align with the Microsoft servicing release cycles.Today we are announcing that ASP.NET Core 2.3 will reach end of support on April 13, 2027. After that date, Microsoft will no longer provide security patches, bug fixes, or technical support for ASP.NET Core 2.3.
This announcement provides the required 12 months of advance notice, as defined by the Microsoft Support Lifecycle Policy for products classified as “Tools.”
Current support policy
ASP.NET Core 2.3 packages (latest patched version only) are currently supported only with .NET Framework (they’re already unsupported on the .NET Core runtime). After April 13, 2027, this support will end and ASP.NET Core 2.3 will not be supported on any version of NET Framework either.
Note that the ASP.NET Core 2.3 packages include the Entity Framework 2.3 packages, which will end support on the same date.
Impact of end of support
After ASP.NET Core 2.3 reaches end of support:
- No new security updates will be issued for ASP.NET Core 2.3.
- Continuing to use an unsupported version may expose your applications to security vulnerabilities.
- Technical support will no longer be available for ASP.NET Core 2.3.
- The ASP.NET Core 2.3 packages will be deprecated.
Upgrade recommendation
We understand that upgrading is an investment, and we want to make the process as smooth as possible. Modern versions of .NET offer significant improvements in performance, security, and developer productivity that make the upgrade well worth the effort.
We recommend upgrading to a currently supported version of .NET, such as .NET 10 (LTS).
To help with the upgrade process, we recommend using GitHub Copilot modernization, which provides AI-powered assistance to help you analyze, plan, and execute your migration to a modern .NET version.
Resources
Closing
ASP.NET Core 2.3 will reach end of support on April 13, 2027. We strongly recommend starting your migration to a supported version of .NET today, leveraging tools like GitHub Copilot modernization to facilitate the process. If you have any questions or need assistance, please reach out to us through our support channels.
Yes new security updates will be issued for ASP.NET Core 2.3.
I’m not sure that I have much empathy on this one… It’s been a decade and we’ll past enough time to migrate to a newer platform version.
I will say that the core 2 to 3 migration was one of the most painful, but since Core 3 and into .Net 5 to current has been relatively smooth. Given the seismic shift from Cute 1 to 2, it should have been anticipated to not necessarily stay out long term and getting a decade of support is a pretty good run, all things considered in terms of web platforms.
I wonder if this end-of-life plan was already known to developers of Teams when they chose to use ASP.NET Core 2.2, rather than 2.1 or 2.3, in the Push Notification Hub modernization project about which they blogged here in April 2025.
Please edit “ASP.NET Core 2.3 Supported Packages” page to mention the end-of-life announcement there too.
Interesting what does it mean for the future of the CoreWCF project.
It relies on ASP.NET Core 2.3 AFAIK.
It does and it doesn't depend on ASP.NET Core 2.3. In order to run on .NET Framework, CoreWCF needs to depend on ASP.NET Core 2.3. CoreWCF targets a single tfm, and only targets netstandard2.0. When running on .NET Framework, the ASP.NET Core 2.3 dependency is pulled in and used at runtime. When you build an application that targets .NET, eg net8.0, there's some build targets built in to the .NET SDK which detects the ASP.NET Core 2.3 dependency and pulls them out, replacing them with a reference to the ASP.NET Core reference assemblies that ship with the SDK. The end...
I think there is a contradiction between this post and the following:
https://dotnet.microsoft.com/en-us/platform/support/policy/corewcf
The end of life date for the specific version of .NET Framework or six months after the next major or minor version release.
@Matt I would still appreciate if the policy could be updated to make this clearer already on 1.8:
Instead of <code> it should say something like <code> and some part below even still mentions ASP.NET Core 2.1. And as right now, the support dependency on ASP.NET Core is only mentioned in regards to major updates wheres I assume it's always the dependency for the EOS even though not clearly stated on the top. It might just allow to relief some confusion with some easy fix-ups :)
Maybe even update the 1.8 EOS text to <code> in accordance to the others.
I say up to because if at the release date of 1.10 there is only 3 months of support left for ASP.NET Core 2.3, then 1.9 would only have 3 months of support on .NET Framework.
The lifecycle policy states “The end of life date for the specific version of .NET Framework” not “The end of life date for the specific version of ASP.NET Core” so I think it still requires some clarification.
Basically it means that when 1.10 is released, 1.9 will be supported for up to 6 months. I say up to because if at the release date of 1.10 there is only 3 months of support left for ASP.NET Core 2.3, then 1.9 would only have 3 months of support on .NET Framework. The same applies for .NET versions. If 1.10 is released when there is only 2 months of support left for .NET 8, then the support for 1.9 on .NET 8 would end after only 2 months and not the 6 months.
And yes, I will release a CoreWCF...
I assume they will release CoreWCF 2.0 and drop `.NET Framework` support (having it supported for only 6 more months on CoreWCF 1.8).
The lifecycle policy states:
For example, when 2.0 is released, if 1.10 was the last 1.x release and supported .NET Framework, .NET 9 and .NET 10, then it would be supported on .NET 9 and .NET 10 for the duration of their respective support lifecycle, and would be supported on .NET Framework for the duration of support of ASP.NET Core 2.3.
Basically saying you should not expect ANY specific version to be supported for longer than 6 months at...
The ASP.NET to ASP.NET Core migration documentation includes the use of the Microsoft.AspNetCore.DataProtection.SystemWeb package, to protect data in a manner compatible with ASP.NET Core.
That package is currently listed as an ASP.NET Core package and thus would be included in this deprecation.
What is the plan for supporting migrations from ASP.NET to ASP.NET Core after next April?
Thanks for bringing this to our attention. We’re looking at options for updating this guidance.
I like the proposed approach. Thanks for the quick follow-up!
We’re proposing to move the functionality from Microsoft.AspNetCore.DataProtection.SystemWeb into Microsoft.AspNetCore.SystemWebAdapters.FrameworkServices for ongoing support: https://github.com/dotnet/systemweb-adapters/pull/672
Suddenly treating the ASP.NET Core 2.3 runtime packages as “tools” to justify the fact you’ll no longer honor the support duration you had initially announced is honestly infuriating.
The post doesn’t mention it, but I suspect Entity Framework Core 2.3 will get the same treatment?
Hi Kévin. The “Tools” designation for ASP.NET Core 2.3 isn’t actually new. It’s always been designated that way in the ASP.NET Core 2.3 support policy. We certainly understand thought that it’s never pleasant when support ends for a technology that you’re using.
The EF Core 2.3 packages are included in the ASP.NET Core 2.3 package listing. I agree that’s not clearly called out in this announcement. I’ll get that clarified in the post.
Even after the 2.1 → 2.3 transition, there is ongoing cost to maintain a library like this. Security expectations and compliance standards continue to rise over time (for example, through initiatives like the Secure Future Initiative), and meeting those standards requires continual investment. That cost does not stop once a version has shipped or been stabilized, and it pulls resources from investment in our modern .NET platform.
ASP.NET Core support on .NET Framework was originally preserved to ease migrations from classic ASP.NET to ASP.NET Core. Since ASP.NET Core 2.3, however, we’ve shipped nine additional releases, and the platform has continued to...
Thanks. Good point regarding the "Tools" designation: after checking, it's indeed not new. Even ASP.NET MVC 5, ASP.NET Web API 2 and Entity Framework are also listed as "tools" in KB2902020: https://learn.microsoft.com/en-us/troubleshoot/developer/webapps/aspnet/development/support-lifecycle-web-stack (tho' it doesn't make much sense to call these runtime libraries "tools", but heh).
Such decisions would feel less arbitrary if the reasons behind them were mentioned: downloads on NuGet.org indicate that the 2.3 version of the ASP.NET Core packages are still massively used, so it's not like 2.3 is no longer used anywhere. Maintaining this version certainly has a cost, but wasn't that cost mostly paid during the...