IIS7 and the .Net Assembly Cache
Someone can set me straight on this if they know more details, but as I understand it in Internet Information Services 6 (IIS6) there wasn't a dynamic assembly cache that was compiled on demand from the contents of the Global Assembly Cache (GAC). This makes troubleshooting assembly loading slightly easier, but the IO read from the GAC probably didn't help on performance, hence the introduction of the .Net assembly cache in IIS7.
To view the contents of the dynamic IIS7 assembly cache on the server at runtime, you can run process explorer (procexp), which is part of the sysinternals suite (which is awesome!).
Here's what you need to do step by step:
- Know the name of the IIS site that's loading the assemblies that you are investigating.
- Obtain the process ID for the w3wp process under which that application pool is running.
- To do this you can quickly enumerate the w3wp process names and their procIDs by opening a cmd prompt and typing:
- Once you have the procID open up Process Explorer (procexp.exe) and locate the corresponding w3wp process.
- Right click and select properties, then go to the tab named ".Net Assembly Cache" and there you have it, the dynamic assembly cache contents.
cd C:\Windows\System32\InetSrv
appCmd list wp