Instead of loading the XML document into the application state, use the web cache. When you insert an object into the web cache you can insert with a dependency. The dependencies can be date/time, file, other dependencies, etc. So you would create a file dependency against that XML file so when it's changed outside the web application itself the cached version will expire and be forced to reload. The other benefit of this is that in the web application you don't need to have code that saves TO the xml file also reload it into the cache. Just let the cache load code (which checks to see if the object is already cached) handle the (re)load which it has to do anyway.
Look into the
System.Web.Caching namespace.
Peter
-------------------------
Work smarter, not harder