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
<PackageReference Include="Core.AspNet.Web.Hosting.Kestrel" Version="1.0.0.26263" />
<PackageVersion Include="Core.AspNet.Web.Hosting.Kestrel" Version="1.0.0.26263" />
<PackageReference Include="Core.AspNet.Web.Hosting.Kestrel" />
paket add Core.AspNet.Web.Hosting.Kestrel --version 1.0.0.26263
#r "nuget: Core.AspNet.Web.Hosting.Kestrel, 1.0.0.26263"
#:package Core.AspNet.Web.Hosting.Kestrel@1.0.0.26263
#addin nuget:?package=Core.AspNet.Web.Hosting.Kestrel&version=1.0.0.26263
#tool nuget:?package=Core.AspNet.Web.Hosting.Kestrel&version=1.0.0.26263
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 .NETSystem.Web.dll/System.Configuration.dllfacades. Not optional: without it they collide with the port, givingCS0433at build time andTypeLoadExceptionon the first request. It also asserts thatCore.Web.dllreached your output directory, turning that runtime failure into a build error.- Project-tree nesting — puts
Default.aspx.csandDefault.aspx.designer.csunderDefault.aspxin Solution Explorer, for.aspx,.ascx,.master,.ashx,.asmxand.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.
UseWebFormshandles 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_Codeis compiled at runtime, so your project must<Compile Remove="App_Code\**\*.cs" />and ship it as content instead.- Assembly names in
web.configchange.assembly="System.Web"becomesassembly="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 | Versions 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. |
-
net10.0
- Core.AspNet.Web.ConfigBridge (>= 1.0.0.26263)
- Core.AspNet.Web.Extensions (>= 1.0.0.26263)
- Core.AspNet.Web.Forms (>= 1.0.0.26263)
- Core.AspNet.Web.Services (>= 1.0.0.26263)
- System.Configuration.ConfigurationManager (>= 8.0.0)
-
net6.0
- Core.AspNet.Web.ConfigBridge (>= 1.0.0.26263)
- Core.AspNet.Web.Extensions (>= 1.0.0.26263)
- Core.AspNet.Web.Forms (>= 1.0.0.26263)
- Core.AspNet.Web.Services (>= 1.0.0.26263)
- System.Configuration.ConfigurationManager (>= 8.0.0)
-
net8.0
- Core.AspNet.Web.ConfigBridge (>= 1.0.0.26263)
- Core.AspNet.Web.Extensions (>= 1.0.0.26263)
- Core.AspNet.Web.Forms (>= 1.0.0.26263)
- Core.AspNet.Web.Services (>= 1.0.0.26263)
- System.Configuration.ConfigurationManager (>= 8.0.0)
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 |