Analysis: Minimum changes to move server.cs from HttpListener to Kestrel#114
Closed
nagendramishr with Copilot wants to merge 1 commit into
Closed
Analysis: Minimum changes to move server.cs from HttpListener to Kestrel#114nagendramishr with Copilot wants to merge 1 commit into
nagendramishr with Copilot wants to merge 1 commit into
Conversation
Copilot
AI
changed the title
[WIP] Analyze minimum changes for Kestrel request instantiation
Analysis: Minimum changes to move server.cs from HttpListener to Kestrel
Feb 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Report-only analysis of what's required to migrate
server.csfromSystem.Net.HttpListenerto Kestrel. No code changes.Core Finding
The minimum to instantiate a
RequestDataafter Kestrel receives a request is 3 changes:RequestDataacceptingHttpContextinstead ofHttpListenerContextContextproperty type fromHttpListenerContext?toHttpContext?(~30+ downstream references)Ripple Effects
.Response.OutputStream→.Response.Body,.ContentLength64→.ContentLength, remove.Response.Close()callsProxyWorker.cs: ~15request.Contextreferences need API updatesAsyncWorker.cs: ~7 references for blob URI headers and status codesProbeServer.cs: 3 methods change signature fromHttpListenerContext→HttpContextEventDataBuilder.cs: 1 method signature updateMicrosoft.NET.Sdk.Worker→Microsoft.NET.Sdk.Web, host builder →WebApplication.CreateBuilderserver.cs:Run()accept loop replaced by Kestrel middleware; all enqueue/validation logic unchangedWhat Doesn't Change
All request processing logic (header validation, priority assignment, queue enqueue, circuit breaker checks) operates on
RequestDatafields — not on the HTTP context directly — and requires zero modification.💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.