In short
The .NET 10 Hosting Bundle is the Windows installer you need when hosting ASP.NET Core 10 behind IIS. It installs the .NET Runtime, ASP.NET Core Runtime, and ASP.NET Core Module V2 (ANCM) so IIS can start and route requests to your application.
If you already have a Windows Server and only need the bundle, use Microsoft's official .NET 10 download page or install it with WinGet:
winget install --id Microsoft.DotNet.HostingBundle.10 --silent --accept-source-agreements --accept-package-agreements
For a full deployment, install IIS first, install the Hosting Bundle, publish your application, create a dedicated IIS site and app pool, and expose the site through IIS on ports 80 and 443. Microsoft recommends No Managed Code for ASP.NET Core app pools, although the setting is recommended rather than required for the application to start.
Raff Windows VMs provide the Windows Server layer for this IIS architecture. If you are still choosing infrastructure, compare ASP.NET hosting on Raff and the underlying Windows VM plans before deploying.
Browser → Windows Server → IIS → ASP.NET Core Module V2 → ASP.NET Core 10 app

.NET 10 Hosting Bundle download for Windows Server
Download the .NET 10 Hosting Bundle from Microsoft's official .NET 10 download page: open the ASP.NET Core Runtime section and choose Hosting Bundle for Windows. Use the bundle, not only the standalone runtime, because the Hosting Bundle installs the .NET runtime components plus ASP.NET Core Module V2 for IIS.
The original Raff test used Hosting Bundle 10.0.7 on a 4 vCPU / 8 GB Windows Server 2025 VM on April 30, 2026. That test record is preserved. For a new deployment today, install the current supported .NET 10 patch rather than reproducing the old lab patch exactly.
As of September 17, 2026, Microsoft's current .NET 10 release is 10.0.12, released September 8, 2026. Microsoft marks it as a security patch and recommends upgrading older .NET 10 patch levels. .NET 10 remains an active LTS release through November 14, 2028.
winget install --id Microsoft.DotNet.HostingBundle.10 --silent --accept-source-agreements --accept-package-agreements
After installation, verify that both the runtime and IIS integration are present:
dotnet --list-runtimes Import-Module WebAdministration Get-WebGlobalModule -Name "AspNetCoreModuleV2" | Format-Table Name, Image
You should see .NET 10 runtime entries and an AspNetCoreModuleV2 result.
What is included in the .NET 10 Hosting Bundle?
The Hosting Bundle is designed for running ASP.NET Core applications with IIS. It includes:
- the .NET Runtime;
- the ASP.NET Core Runtime;
- ASP.NET Core Module V2 for IIS integration.
The SDK is separate. You only need the SDK on the server if you plan to create, build, or publish applications there.
| Component | What it is for | Needed on an IIS production server? |
|---|---|---|
| .NET Runtime | Runs framework-dependent .NET applications | Yes |
| ASP.NET Core Runtime | Runs ASP.NET Core applications | Yes |
| ASP.NET Core Module V2 | Connects IIS to the ASP.NET Core app | Yes |
| .NET SDK | Build, create, and publish commands | Only if you build on the server |
Who this guide is for
This guide is for developers and operators deploying an ASP.NET Core application to Windows Server with IIS. Typical use cases include internal applications, customer portals, APIs, line-of-business systems, and multiple ASP.NET Core sites hosted on one Windows VM.
For larger multi-server deployments, containers or a load-balanced architecture may fit better. The focus here is the common single-server or small-cluster IIS deployment pattern.
What you'll need
- Windows Server 2025 or Windows Server 2022;
- local administrator access through Remote Desktop Protocol (RDP);
- an ASP.NET Core application to deploy;
- the .NET 10 Hosting Bundle;
- optional: a separate build machine or CI runner;
- about 30-45 minutes for a first deployment.
If you need help connecting first, see the RDP connection guide.
.NET 10 is an active LTS release
Microsoft's current .NET support policy lists .NET 10 as an active Long Term Support release through November 14, 2028. As of September 17, 2026, the latest supported patch is 10.0.12. Microsoft releases servicing patches during the support lifecycle and requires supported systems to remain current on released updates.
Three distinctions matter for IIS:
- The Hosting Bundle and SDK are separate. The Hosting Bundle lets IIS run ASP.NET Core applications. The SDK is needed for
dotnet new,dotnet build, anddotnet publish. - ASP.NET Core Module V2 is part of the Hosting Bundle. IIS uses it to start and route requests to the application.
- No Managed Code is recommended, not mandatory. ASP.NET Core boots CoreCLR itself rather than relying on the classic desktop CLR configured for the IIS app pool.
Step 1 — Install the Web Server (IIS) role
Open PowerShell as administrator and run:
Install-WindowsFeature -Name ` Web-Server, ` Web-Common-Http, ` Web-Static-Content, ` Web-Default-Doc, ` Web-Dir-Browsing, ` Web-Http-Errors, ` Web-App-Dev, ` Web-Net-Ext45, ` Web-AppInit, ` Web-ISAPI-Ext, ` Web-ISAPI-Filter, ` Web-Health, ` Web-Http-Logging, ` Web-Performance, ` Web-Stat-Compression, ` Web-Security, ` Web-Filtering, ` Web-Mgmt-Tools, ` Web-Mgmt-Console ` -IncludeManagementTools
Verify IIS and its services:
Get-WindowsFeature -Name Web-Server | Format-Table Name, InstallState Get-Service -Name W3SVC, WAS | Format-Table Name, Status, StartType
Then browse to http://localhost from a browser on the server.

If the IIS welcome page loads, the web server is accepting local requests.
From the Raff test: IIS installed successfully on Windows Server 2025 without requiring a reboot. That is the observed result from the tested VM, not a guarantee for every Windows Server state.
Step 2 — Download and install the .NET 10 Hosting Bundle for IIS
The Hosting Bundle installs the .NET Runtime, ASP.NET Core Runtime, and ASP.NET Core Module V2.
The command used in the original Raff test was:
winget install --id Microsoft.DotNet.HostingBundle.10 --silent --accept-source-agreements --accept-package-agreements
If WinGet is unavailable, download the Windows Hosting Bundle from Microsoft's official .NET 10 download page.
Install IIS before the Hosting Bundle
Install IIS first, then install the Hosting Bundle. If the Hosting Bundle was installed before IIS, repair or run the Hosting Bundle again after IIS is present so ASP.NET Core Module V2 is registered correctly.
Refresh PATH and verify the runtime
$env:Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User") dotnet --list-runtimes
You should see .NET 10 runtime entries similar to:
Microsoft.AspNetCore.App 10.0.x [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.NETCore.App 10.0.x [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Verify ASP.NET Core Module V2:
Import-Module WebAdministration Get-WebGlobalModule -Name "AspNetCoreModuleV2" | Format-Table Name, Image
If this returns nothing, repair or reinstall the Hosting Bundle as administrator after IIS is installed.
Step 3 — Restart IIS hosting services after the bundle install
The April 30 Raff test used iisreset, and it completed successfully:
iisreset
Microsoft's IIS deployment guidance also supports restarting the server or restarting Windows Process Activation Service and World Wide Web Publishing Service after installing or upgrading the Hosting Bundle:
net stop was /y net start w3svc
Both approaches interrupt IIS-hosted applications. On a production server with existing sites, schedule the restart during a maintenance window.
Verify the services after the restart:
Get-Service -Name W3SVC, WAS | Format-Table Name, Status

