-
Notifications
You must be signed in to change notification settings - Fork 10.4k
Open
Labels
api-suggestionEarly API idea and discussion, it is NOT ready for implementationEarly API idea and discussion, it is NOT ready for implementationarea-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsblockedThe work on this issue is blocked due to some dependencyThe work on this issue is blocked due to some dependency
Milestone
Description
Kestrel is designed for DI. But there is a public way to create it directly: KestrelServer.cs
This is forcing various hacks on us:
- The real implementation of
IServer
is internal -KestrelServerImpl
- and is wrapped byKestrelServer
. - Adding new DI types to KestrelServer forces us to consider how
KestrelServer
passes them toKestrelServerImpl
. See metrics PR and Andrew's TLS PR. - Falling behind on functionality. For example,
KestrelServer
doesn't support HTTP/3 (no ctor overload was added for specifying multiplexed transports).
Prior art in this area:
IISHttpServer
is internal.MessagePump
is internal.TestServer
is public.
I think we should obsolete KestrelServer
and require creating it with a builder.
Metadata
Metadata
Assignees
Labels
api-suggestionEarly API idea and discussion, it is NOT ready for implementationEarly API idea and discussion, it is NOT ready for implementationarea-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsblockedThe work on this issue is blocked due to some dependencyThe work on this issue is blocked due to some dependency