Here's a good definitive list of which events cause an ASP.NET AppDomain restart. These are important since and AppDomain restart will cause you to lose any inProc session you have for a given user.
Things like adding, modifying, deleting assemblies from the bin folder, changing source code files in app_code dir, changing web.config, etc.
ASP.NET Forums