Is there a recommended way to bounce an asp.net application besides touching web.config from inside the application? is HttpRuntime.UnloadAppDomain(); the preferred way to do this ? and if so where do you do this? in the unload of a page or some other place in the application
You can stop and start the Application Pool associated with the app as well.
If this is .NET 2.0 or greater, then you can add in an "App_offline.htm" file, make a request to the server, remove it, and then make another request to the server.
This sequence of events will force ASP.NET to unload the application for as long as the app_offline.htm file exists in the folder.
Scott Guthrie's blog entry on it: http://weblogs.asp.net/scottgu/archive/2005/10/06/426755.aspx
Touching web.config from inside an application is a bad idea, IMO. Also, the idea of having a file that you modify is a little hackney, IMO.
The documentation specifically states that UnloadAppDomain will shut the application down:
UnloadAppDomain allows programmatic shutdown of unused applications.
You should be able to make this call anywhere in the application. Mind you, you might get a SecurityException, so make sure that the runtime gives you the appropriate permissions (you might want to put this in a library and make a call and then set the library up in the GAC with evidence to give it full trust).
If you don't want to stop and start the app pool you can always recycle it.