One of the more insidious impacts of logging is its tendency to infiltrate your design. By applying the Single Responsibility Principle, we can separate logging from our application's other concerns and create a more maintainable code base.
Software evolves, it grows and contracts, with a series of choices. Inevitably, that process can be messy at times. The developers that came before you faced constraints that are likely unknown to us now.
ASP.NET Core's behavior appears to be tailored to support ASP.NET Core MVC's routing system. It's formal HttpRequest class exposes the components of a request but they rarely exactly reflect what the user specified. Let's find those original request components.
Microsoft has polluted the lexicon a bit by introducing the 'async' method modifier. I find that this leads to ambiguity in discussions and, as a result, hampers a developer's ability to grasp the concept. So, let's take a look at the goals and function of .NET's async/await paradigm.
Might. Might is a dangerous word. Might is a word that lends hope to empty promises. It's a word that bestows risk.