Chuyển đến nội dung chính

.NET 8 và 9 hết hỗ trợ ngày 10/11/2026: kiểm tra và nâng cấp

  • Ngày đăng
  • 10 phút đọc
Ảnh minh họa: .NET 8 và 9 hết hỗ trợ ngày 10/11/2026: kiểm tra và nâng cấp
Mục lục10

Ngày 10/11/2026 (giờ Hoa Kỳ), .NET 8 và .NET 9, nền tảng phát triển của Microsoft, sẽ hết hỗ trợ. Sau ngày này, dù phát hiện lỗ hổng mới cũng sẽ không có bản sửa. Cũng trong ngày này, PowerShell 7.4 và 7.5 hết hỗ trợ.

Bài viết này dành cho các công ty đang chạy hệ thống nội bộ hoặc ứng dụng nghiệp vụ trên .NET: cách xác định công ty có thuộc diện ảnh hưởng không, nên chuyển sang bản nào và tiến hành chuyển đổi ra sao, theo từng bước. Hệ thống đang giao hẳn cho đơn vị phát triển cũng thuộc diện này.

Tóm tắt nhanh

  • .NET 8 (LTS) và .NET 9 (STS) đều kết thúc vào ngày 10/11. Bản sửa cuối cùng là 8.0.33 và 9.0.22, phát hành ngày 25/10.
  • Bản nên chuyển sang về cơ bản là .NET 10 (LTS), được hỗ trợ đến 14/11/2028.
  • Hết hỗ trợ không có nghĩa là ứng dụng đột ngột ngừng chạy. Tuy nhiên, các điểm yếu phát hiện từ nay về sau sẽ không được sửa.
  • .NET Framework (4.8, 4.8.1…) tích hợp sẵn trong Windows không thuộc diện lần này. Tên gọi khá giống nhau, nên trước hết hãy phân biệt rõ.

10/11

.NET 8, 9 hết hỗ trợ (năm 2026, giờ Hoa Kỳ)

8.0.33 / 9.0.22

Bản sửa cuối cùng (phát hành 25/10)

11/2028

Hạn hỗ trợ của .NET 10 (bản nên chuyển sang)

Giải thích thuật ngữ

.NET = nền tảng do Microsoft cung cấp để xây dựng và chạy ứng dụng. Được dùng rộng rãi cho hệ thống nghiệp vụ nội bộ, dịch vụ web, ứng dụng Windows…

Hết hỗ trợ = nhà cung cấp ngừng phát hành bản sửa (kể cả bản cập nhật bảo mật).

LTS và STS = hai loại phiên bản của .NET. LTS (hỗ trợ dài hạn) được cung cấp bản sửa miễn phí trong 3 năm, STS (hỗ trợ tiêu chuẩn) trong 2 năm.

Vì sao .NET 8 và .NET 9 kết thúc cùng một ngày?

Mỗi năm vào tháng 11, .NET ra một phiên bản mới. Bản số chẵn là LTS (3 năm), bản số lẻ là STS (trước đây là 18 tháng). Từ .NET 9, Microsoft kéo dài thời hạn STS lên 2 năm, nên .NET 8 ra năm 2023 và .NET 9 ra năm 2024 cùng kết thúc vào ngày 10/11/2026.

Những công ty từng nghĩ ".NET 9 còn mới nên chưa sao" cũng thuộc diện lần này.

Hết hỗ trợ thì gặp rắc rối gì?

Sau ngày 10/11, ứng dụng vẫn chạy bình thường. Rắc rối nằm ở những vấn đề được phát hiện sau đó.

Lỗ hổng không được sửa

.NET gần như tháng nào cũng phát hành bản sửa. Điểm yếu phát hiện sau khi hết hỗ trợ sẽ bị bỏ ngỏ.

Bị đối tác nhắc nhở khi rà soát

Trong các đợt kiểm tra bảo mật hay kiểm toán, "có dùng phần mềm đã hết hỗ trợ không?" là câu hỏi thường gặp.

Khó cập nhật thư viện

Các thư viện mà ứng dụng sử dụng (gói NuGet) có thể sẽ không còn hỗ trợ .NET cũ ở phiên bản mới.

Đối tượng bị ảnh hưởng và bản cần chuyển sang

Sản phẩmHạn hỗ trợTrạng tháiChuyển sang
.NET 8 (LTS)10/11/2026Sắp kết thúc.NET 10
.NET 9 (STS)10/11/2026Sắp kết thúc.NET 10
.NET 7 / .NET 65/2024 và 11/2024Đã kết thúc.NET 10
.NET 10 (LTS)14/11/2028Còn hỗ trợ—
PowerShell 7.4 (LTS) / 7.510/11/2026Sắp kết thúcPowerShell 7.6 (LTS)
Windows 11 23H2 (Enterprise / Education)10/11/2026Sắp kết thúc24H2 / 25H2

※ Ngày tháng tính theo giờ Hoa Kỳ. Các thành phần đi kèm .NET như ASP.NET Core, Entity Framework Core cũng nên coi là có cùng thời hạn.

※ Phiên bản tiếp theo, .NET 11, là STS và vẫn đang ở giai đoạn bản ứng viên phát hành (release candidate). Với hệ thống dùng lâu dài, chọn .NET 10 trước là phương án an toàn.

Khác với ".NET Framework"

.NET Framework (4.8, 4.8.1…) tích hợp sẵn trong Windows vẫn tiếp tục được sửa lỗi theo thời hạn hỗ trợ của Windows. Thứ kết thúc lần này là dòng ".NET" mới bắt đầu từ năm 2016 (tên cũ là .NET Core).

Tuy vậy, các hệ thống cũ làm bằng .NET Framework cũng cần được rà soát lại khi Windows Server hết hỗ trợ. Chi tiết xem bài "Bảo mật hệ thống cũ: bắt đầu từ đâu?".

Diễn biến

  • Phát hành .NET 8 (LTS)
  • Phát hành .NET 9 (STS)
  • Phát hành .NET 10 (LTS)
  • Phát hành .NET 8.0.33 và 9.0.22. Bản sửa cuối cùng trong thời hạn hỗ trợ
  • .NET 8, .NET 9 hết hỗ trợ (cùng với PowerShell 7.4, 7.5)

Cách xác định công ty có bị ảnh hưởng không

Trước hết, hãy liệt kê những hệ thống nào đang chạy trên .NET. Có thể kiểm tra theo các cách sau.

  • Kiểm tra trên máy chủ: chạy dotnet --list-runtimes sẽ hiện danh sách các phiên bản .NET đã cài. Nếu có Microsoft.NETCore.App 8.0.x hoặc 9.0.x thì thuộc diện ảnh hưởng.
  • Kiểm tra trong mã nguồn: nếu <TargetFramework> trong file dự án (.csproj) là net8.0 hoặc net9.0 thì thuộc diện ảnh hưởng.
  • Nếu chạy bằng container: kiểm tra xem có đang dùng image 8.0, 9.0 như mcr.microsoft.com/dotnet/aspnet:8.0 không.
  • Nếu .NET được đóng gói kèm ứng dụng (triển khai dạng self-contained): dù máy chủ không cài .NET, bên trong ứng dụng vẫn có .NET 8 hoặc 9. Cần build lại và phân phối lại.
  • PowerShell: xem phiên bản bằng $PSVersionTable.PSVersion. Nếu là 7.4 hoặc 7.5, hãy nâng lên 7.6.

6 bước chuyển đổi

  1. Lập danh sách hệ thống

    Dùng các cách trên để liệt kê toàn bộ hệ thống đang chạy trên .NET 8, 9. Đánh dấu những hệ thống công khai ra bên ngoài và những hệ thống xử lý thông tin cá nhân.

  2. Quyết định thứ tự

    Chuyển trước các hệ thống công khai trên Internet. Hệ thống chỉ dùng nội bộ có thể làm sau.

  3. Đổi phiên bản sang .NET 10

    Đổi TargetFramework trong file dự án thành net10.0, đồng thời nâng các thư viện đang dùng (gói NuGet) lên phiên bản mới.

  4. Kiểm tra các thay đổi không tương thích

    Xem danh sách "thay đổi phá vỡ tương thích (breaking changes)" do Microsoft công bố, cho cả bản 9 và 10. Nếu chuyển từ .NET 8, các thay đổi của .NET 9 ở giữa cũng cần xem.

  5. Chạy thử trên môi trường kiểm thử

    Kiểm tra các màn hình chính, báo cáo, phần kết nối với hệ thống bên ngoài, các xử lý chạy ban đêm… Nếu chưa có kiểm thử tự động, hãy lập bảng các mục cần kiểm tra.

  6. Chuyển môi trường thật và theo dõi

    Một thời gian sau khi chuyển, hãy theo dõi log lỗi và tốc độ xử lý. Giữ lại môi trường cũ thêm một thời gian ngắn để có thể quay lại khi có sự cố sẽ yên tâm hơn.

Nếu không kịp trước ngày 10/11

Hẳn sẽ có nhiều công ty chưa chuyển đổi xong trước hạn. Khi đó, điều quan trọng là trước hết cập nhật lên bản sửa cuối cùng (8.0.33, 9.0.22), và lập kế hoạch, thời hạn chuyển đổi rồi ghi lại thành văn bản. Khi đối tác hỏi, bạn có thể trả lời "sẽ chuyển đổi xong trước thời điểm nào".

Nếu hệ thống đang do đơn vị phát triển quản lý

Dù giao hệ thống cho đơn vị phát triển, chủ sở hữu hệ thống vẫn là công ty bạn. Nên hỏi họ những điều sau:

  • Hệ thống của chúng tôi đang chạy trên phiên bản .NET nào? Có phải bản 8 hay 9 không?
  • Kế hoạch chuyển sang .NET 10 thế nào, chi phí và thời gian dự kiến khoảng bao nhiêu?
  • Trong các thư viện đang dùng (gói NuGet), có cái nào đã ngừng phát triển không?
  • Chúng tôi có thể nhận mã nguồn và quy trình triển khai lên môi trường thật không?

Nếu không liên lạc được với đơn vị phát triển hoặc không còn tài liệu, hãy xem thêm bài "Tiếp nhận bảo trì hệ thống cũ không có tài liệu". Nếu công ty còn có hệ thống Java hoặc PHP, hãy xem thêm bài "Lỗ hổng Java tháng 10/2026" và "Xử lý lỗ hổng PHP".

Để nguyên hay chuyển đổi?

Nếu để nguyên

  • Điểm yếu phát hiện từ nay về sau sẽ không được sửa
  • Bị nhắc nhở trong các đợt rà soát, kiểm toán của đối tác
  • Càng trì hoãn, các thư viện cần cập nhật càng dồn lại, chuyển đổi càng vất vả

Nếu chuyển sang .NET 10

  • Nhận được bản sửa đến tháng 11/2028
  • Tận dụng được ưu điểm của bản mới, như cải thiện hiệu năng
  • Có thể trả lời đối tác và khách hàng rằng "đã xử lý xong"

Digi Dinos có thể giúp gì?

Digi Dinos hỗ trợ doanh nghiệp về DX, bảo mật, vận hành và bảo trì hệ thống. Với văn phòng tại Nhật Bản và Việt Nam, trong 8 năm chúng tôi đã thực hiện hơn 150 dự án, với đội ngũ làm việc được bằng tiếng Nhật.

  • Chuyển đổi .NET: từ khảo sát phiên bản đến chuyển sang .NET 10, kiểm thử và chuyển môi trường thật.
  • Tiếp nhận bảo trì hệ thống cũ: tiếp nhận được cả hệ thống do công ty khác xây dựng, bằng .NET, Java, PHP…
  • Vận hành và giám sát sau chuyển đổi: theo dõi máy chủ và cloud 24/7, 365 ngày, nhận cả việc áp dụng bản sửa hằng tháng.
  • Không có tài liệu cũng không sao: kể cả khi nhà cung cấp cũ đã không còn và không ai hiểu hệ thống, chúng tôi tự đọc mã nguồn, dựng lại tài liệu và đề xuất kế hoạch hoàn chỉnh.
  • Bảo hành vĩnh viễn: nếu phát hiện lỗi ở phần chúng tôi đã sửa, chúng tôi chịu trách nhiệm sửa, không giới hạn thời gian chừng nào hợp đồng bảo trì còn tiếp tục.

Chưa chắc hệ thống của bạn có chạy trên .NET 8 không? Tư vấn miễn phí.

Từ kiểm tra phiên bản, lập kế hoạch đến thực hiện chuyển đổi, hướng dẫn bằng tiếng Nhật. Kể cả khi không liên lạc được với đơn vị phát triển.

Câu hỏi thường gặp

Sau ngày 10/11, ứng dụng có ngừng chạy không?

Ứng dụng không ngừng chạy. Tuy nhiên, các lỗ hổng phát hiện sau đó sẽ không được sửa, nên hệ thống càng công khai trên Internet thì rủi ro càng tăng dần.

Có thể chuyển ngay từ .NET 8 lên .NET 10 không?

Trong đa số trường hợp, chỉ cần đổi phần khai báo phiên bản và cập nhật thư viện là chạy được. Tuy nhiên, vì nhảy lên hai phiên bản nên cần kiểm tra các thay đổi không tương thích ở giữa. Nếu dùng thư viện cũ hoặc chưa có kiểm thử thì sẽ mất nhiều thời gian hơn.

Hệ thống làm bằng .NET Framework cũng hết hỗ trợ vào ngày 10/11 phải không?

Không. .NET Framework 4.8, 4.8.1… vẫn tiếp tục được sửa lỗi theo thời hạn hỗ trợ của Windows. Tuy nhiên sẽ không có tính năng mới, nên với hệ thống dùng lâu dài, sớm muộn cũng nên tính đến việc chuyển sang .NET 10 hoặc bản tương tự.

Chạy trên cloud thì có cần xử lý không?

Có. Dù máy chủ và dịch vụ cloud đã được cập nhật, nếu ứng dụng làm bằng .NET 8, 9 thì vẫn thuộc diện ảnh hưởng. Cách xử lý phiên bản cũ khác nhau tùy dịch vụ, nên hãy xem cả hướng dẫn của nhà cung cấp cloud đang dùng.

Bài viết liên quan