I know that's what everyone says, but it's simply not what I experience on my site. If I place app_offline.htm in my app root, it does indeed redirect all requests to that page. However, if I start to upload a new version of a DLL to my /bin directory, I
get ASP.NET errors about files being in use. And if I delete the DLL before uploading the new copy, I get errors that the Global class (defined in global.asax) cannot be found. So clearly ASP.NET is still involved in the request pipeline... everyone makes
it sound like ASP.NET is unloaded and IIS handles everything by itself, but if that were the case I wouldn't be getting ASP.NET errors.
So what's a better pathway for uploading new DLLs without causing ANY errors whatsoever? I don't want my users to even see a
friendly error message... I just want them to see the contents of app_offline. I've tried renaming the bin directory, deleting the DLL before uploading a new copy, uploading the new DLL to a different directory and moving it over the old one... and none
of these offer a completely seamless transition from Site Up to Site Offline to Site Up without any errors being thrown. The only other option I can think of is moving Web.config (since it references a custom HTTP Handler and throws an exception if that handler
can't be loaded), Global.asax (references the Global class), and the /bin directory out of the app root, uploading the new DLLs to the moved /bin directory, then move everything back. But that's obviously an enormous pain.
nealdt
Member
12 Points
8 Posts
Re: app_offline.htm and uploading new DLLs
Feb 27, 2008 02:40 AM|LINK
I know that's what everyone says, but it's simply not what I experience on my site. If I place app_offline.htm in my app root, it does indeed redirect all requests to that page. However, if I start to upload a new version of a DLL to my /bin directory, I get ASP.NET errors about files being in use. And if I delete the DLL before uploading the new copy, I get errors that the Global class (defined in global.asax) cannot be found. So clearly ASP.NET is still involved in the request pipeline... everyone makes it sound like ASP.NET is unloaded and IIS handles everything by itself, but if that were the case I wouldn't be getting ASP.NET errors.
So what's a better pathway for uploading new DLLs without causing ANY errors whatsoever? I don't want my users to even see a friendly error message... I just want them to see the contents of app_offline. I've tried renaming the bin directory, deleting the DLL before uploading a new copy, uploading the new DLL to a different directory and moving it over the old one... and none of these offer a completely seamless transition from Site Up to Site Offline to Site Up without any errors being thrown. The only other option I can think of is moving Web.config (since it references a custom HTTP Handler and throws an exception if that handler can't be loaded), Global.asax (references the Global class), and the /bin directory out of the app root, uploading the new DLLs to the moved /bin directory, then move everything back. But that's obviously an enormous pain.
Any ideas?