I think the .NET runtime (CLR) should call the main method. Because every .NET program is managed by the CLR that is why we some times call it as managed code.
Actually From My Point Of View When Any .Aspx page Is Called by Cosumer First Of all IIS Recognize That Page as .Aspx File And Send It to aspnet+isapi.ddl to Deal with It.