Core.AspNet.Web.Hosting.Kestrel 1.0.0.26263

dotnet add package Core.AspNet.Web.Hosting.Kestrel --version 1.0.0.26263
                    
NuGet\Install-Package Core.AspNet.Web.Hosting.Kestrel -Version 1.0.0.26263
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Core.AspNet.Web.Hosting.Kestrel" Version="1.0.0.26263" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Core.AspNet.Web.Hosting.Kestrel" Version="1.0.0.26263" />
                    
Directory.Packages.props
<PackageReference Include="Core.AspNet.Web.Hosting.Kestrel" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Core.AspNet.Web.Hosting.Kestrel --version 1.0.0.26263
                    
#r "nuget: Core.AspNet.Web.Hosting.Kestrel, 1.0.0.26263"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Core.AspNet.Web.Hosting.Kestrel@1.0.0.26263
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Core.AspNet.Web.Hosting.Kestrel&version=1.0.0.26263
                    
Install as a Cake Addin
#tool nuget:?package=Core.AspNet.Web.Hosting.Kestrel&version=1.0.0.26263
                    
Install as a Cake Tool

Core.AspNet.Web.Hosting.Kestrel

Start here. Hosts a classic ASP.NET application — WebForms, MVC, Razor, Web Pages, Web API — on .NET 10 under Kestrel, instead of IIS.

<PackageReference Include="Core.AspNet.Web.Hosting.Kestrel" Version="1.0.0" />
using Microsoft.AspNetCore.Builder;
using System.Web.Hosting.Kestrel;

var builder = WebApplication.CreateBuilder (args);
var app = builder.Build ();

app.UseStaticFiles ();          // before UseWebForms, so Kestrel serves css/js/images directly

app.UseWebForms (options => {
    options.PhysicalPath = app.Environment.ContentRootPath;   // the directory holding web.config
    options.VirtualPath  = "/";
    options.SiteName     = "MyApp";
});

app.Run ();

That is the whole host, whatever stack the application uses. Your .aspx, .ascx, .master, .cshtml, code-behind, controllers and web.config stay as they are, and namespaces are unchanged — System.Web.UI.Page is still System.Web.UI.Page.

What comes with it

Core.AspNet.Web.Forms, Core.AspNet.Configuration, Core.AspNet.Web.Services, Core.AspNet.Web.Extensions and Core.AspNet.Web.ConfigBridge arrive transitively. Add one more package per stack you use — MVC, Web Pages, Web API, WCF, bundling, out-of-process session state.

Two build assets are imported automatically:

  • WebFormsPort.targets — removes the empty .NET System.Web.dll / System.Configuration.dll facades. Not optional: without it they collide with the port, giving CS0433 at build time and TypeLoadException on the first request. It also asserts that Core.Web.dll reached your output directory, turning that runtime failure into a build error.
  • Project-tree nesting — puts Default.aspx.cs and Default.aspx.designer.cs under Default.aspx in Solution Explorer, for .aspx, .ascx, .master, .ashx, .asmx and .asax, in C# and VB.

Options

Option Purpose
PhysicalPath The application directory — where web.config lives.
VirtualPath "/" unless hosted under a sub-path.
SiteName Reported through HostingEnvironment.SiteName.
ShouldHandle Filter deciding which requests reach System.Web. Prefer middleware ordering.
StateSerializer Serializer for view state / session objects with no native encoding.
UseAspNetCoreAuthentication Flow the ASP.NET Core principal into HttpContext.User.
MachineConfigPath Use an operator-supplied machine.config instead of the embedded copy.
ApplicationAssemblies Assemblies to load up front so Inherits= types resolve.
TemporaryFilesPath Where generated pages are compiled. Set it for side-by-side instances.

Things that bite

  • Order matters. UseWebForms handles everything by default and lets <httpHandlers> and the route table decide the outcome — including 403 for .cs/.config. Anything you want handled outside System.Web goes before it.
  • One application per process. There is no AppDomain and no app-pool equivalent.
  • App_Code is compiled at runtime, so your project must <Compile Remove="App_Code\**\*.cs" /> and ship it as content instead.
  • Assembly names in web.config change. assembly="System.Web" becomes assembly="Core.Web"; left alone it binds to the empty framework facade and the registration is silently dropped.

Documentation

PORTING-GUIDE.md (step-by-step migration from IIS) and LIMITATIONS.md (what differs from ASP.NET on .NET Framework, and why) ship in the repository.

Licence

MIT, as the upstream Mono sources this is built from and the code written for this port. THIRD-PARTY-NOTICES.md ships in the package and says which part is which.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Core.AspNet.Web.Hosting.Kestrel:

Package Downloads
Core.AspNet.Web.Remoting

.NET Remoting and AppDomain hosting for the ported ASP.NET: *.rem endpoints, mode="StateServer" over remoting, ApplicationHost.CreateApplicationHost, ApplicationManager, and several recycled applications behind one Kestrel.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0.26263 59 9/20/2026
1.0.0.26262 66 9/19/2026