After deploying our ASP.NET (mostly forms with AJAX) applications to one particular production machine, the recompiling process (where w3wp.exe calls CSC.exe for each aspx or ascx file) continues for hours. The performance of the web app is therefore very sluggish. These very same applications when deployed to other production machines finishes its compiles in minutes.
These aspx compiles are only visible in ProcExp for a second, and the commandlines they use involve a parameters file that is deleted immediately after compiling, so it is very hard for me to monitor what files are being compiled, or to see if the same file is being compiled more than once. Is there any way to log the compilation process so I can try to figure out why this one machine misbehaves?
I know that we can use aspnet_compiler.exe to precompile the entire application, but getting that into the build and deploy workflow (TFS 2010 plus OctopusDeploy) will be a bit of a pain. Furthermore, my attempts to do the precompilation "manually" at the command line aren't working. The precompilation suceeds, but when IIS is pointed at the target directory, any request for any file is throwing this sort of error:
Exception type: HttpException
Exception message: The file '/default.aspx' has not been pre-compiled, and cannot be requested.
- Is there something I should check to determine why this machine spends so much time compiling?
- Is there something I can do to log which files are being compiled when?