I have a Windows 2008 R2 Service Pack 1 server. It's virtual, not that that should make any difference. It's only purpose in life is running IIS 7 and it does that quite nicely. However, when I go to the performance monitor, there's not a choice of ASP.NET or ASP.NET applications. There is a choice of APP_POOL_WAS which has instances of the application pools I'm interested, but the counters are not very interesting. There are also a bunch of other performance counter choices. The websites use 2 application pools, each which is using v4.0 of the .NET framework. If I look in the task manager, i see two w3wp.exe's running, each a IIS worker process. I had UAC turned on, but i turned it off. I added appDomainResourceMontoring to the aspnet.config file, but that didn't help. Here's the aspnet.config file if that's the slightest help.
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<runtime>
<legacyUnhandledExceptionPolicy enabled="false" />
<legacyImpersonationPolicy enabled="true"/>
<alwaysFlowImpersonationPolicy enabled="false"/>
<SymbolReadingPolicy enabled="1" />
<shadowCopyVerifyByTimestamp enabled="true"/>
<appDomainResourceMonitoring enabled="true"/>
</runtime>
<startup useLegacyV2RuntimeActivationPolicy="true" />
</configuration>
What are you looking to track or monitor specifically?
As you saw you have to monitor the application pool and the instances within it as those are the actual threads on the server, under the guise of the w3wp.exe process.
In addition you can check out the ASP.NET Health Monitoring provider. This by far has the most amount of statistics and information related to the actual running application. Check out the Microsoft documents here for more information. If I remember correctly you can log them directly to the event log or to a database. The database is a nice option simply because there can be a metric ton of events raised depending on your configuration.