There is more happening between IIS and ASP.NET than you might imagine. When IIS.NET is run in integrated pipeline mode there is back and forth between IIS and .NET that can cause IIS modules to be executed during the ASP.NET authentication phase (this may alternatively be caused by your own code or even a database statement).
Ruxit now provides visibility into ASP.NET life cycle events (requires Ruxit Agent v1.95 or above). Note that in the .NET service example below ASP.NET is listed in the Top findings section, which leads you to the Breakdown of service execution time section. This entry accounts for all execution time and CPU time spent during the execution of ASP.NET code. As you can see, there are still some portions of code that don’t relate to ASP.NET. These code portions can still be found within Code execution.
Click ASP.NET in the Breakdown of service execution time section to view a method hotspot that starts with the respective ASP.NET life cycle event that these hotspots relate to. Most execution time should be spent with ExecuteRequestHandler, but as you can see, time is also spent for things like authorization or authentication requests.
This example shows that certain frameworks also perform database lookups during authorization.
You might not always see .NET code hotspots underneath such entries. This is either because little or no .NET code is executed (in which case contribution should be minimal) or because the time is spent outside of .NET, possibly in an IIS module.
The same information can be accessed by clicking the View method hotspots button beneath the CPU consumption chart.
Visit our dedicated webpage about ASP.NET monitoring to learn more about how Dynatrace supports ASP.NET.