* Added some doc comments to bedrock APIs
- Also cleaned up some HttpContext doc comments
* Apply suggestions from code review
PR feedback
Co-Authored-By: Andrew Stanton-Nurse <andrew@stanton-nurse.com>
* Apply suggestions from code review
Co-Authored-By: Justin Kotalik <jukotali@microsoft.com>
- Don't register callbacks until we have a request processor
- Remove the IConnectionTimeoutFeature from the feature collection, it was used by connection adapters but isn't needed anymore.
- Rename OnInputOrOutputCompleted to OnConnectionClosed
* Add support for static web assets in blazor client-side
* Blazor serve use MSBuild data instead of heuristics to run the app
* Remove blazor-client-side app Static Web Assets when hosted in an ASP.NET Core
Adds infrastructure for a common IRouter-based pattern. In this pattern,
an extender subclasses Route to post-process the route values before MVC
action selection run. The new infrastructure duplicates this kind of
experience but based on endpoint routing.
The approach in this PR starts at the bottom... meaning that this is the
most-focused and least-invasive way to implement a feature like this.
Similar to fallback routing, this is a pattern built with matcher
policies and metadata rather than a built-in feature of routing.
It's valuable to point out that this approach uses IActionConstraint to
disambiguate between actions. The other way we could go would be to make
the *other* matcher policy implementations able to do this. This would
mean that whenever you have a dynamic endpoint, you will not by using
the DFA for features like HTTP methods. It also means that we need to go
re-implement a bunch of infrastructure.
This PR also adds the concept of an 'inert' endpoint - a non-Routable
endpoint that's created when fallback/dynamic is in use. This seems like
a cleaner design because we don't start *matching* RouteEndpoint
instances for URLs that don't match. This resolves#8130
- Remove ExpectedMiddlewareCount since everything is middleware now
- Renamed everything adapter to middleware
- Added a regression test for an https scenario
- Don't send client certs for tests that don't expect it
Removes handling for IEnumerable<KVP<string, string>>. This isn't
something we really need for the main scenario and it MASSIVELY
complicates the codegen part of the feature. Requiring the dictionary to
be an object-valued dictionary should cover the cases we care about.
- part of aspnet/AspNetCore-Internal#2665
- should surface errors we're currently hiding
Also increase PowerShell logging to help debug build and test hangs
nit: Run `finally` block after catching an exception
* Remove connection adapters and move things to middleware
- Remove connection adapters from the public API surface (pubternal) and replace the existing adapters with connection middleware.
- Updated the tests