Custom app_offline.htm file during publish

痞子三分冷 提交于 2019-11-27 19:42:06

I know this is old but since I found a solution after looking here I thought I should provide an answer. VS 11 holds the publishing app_offline.htm file in this location:

C:\Users\[user]\AppData\Roaming\Microsoft\VisualStudio\11.0\app_offline.htm

I have tested this and customized it and it does work if you change this file. The down side, of course, is that this is the file used for all web publishing.

An easy solution that many might find suitable involves simply adding your own file also named "app_offline.htm" to your solution.

I have tested this method, using Visual Studio 2015, and it does indeed work.

However, the only drawback is that during the publishing process, the default generated app_offline.htm file is copied first, then the solution files in what appears to be in/near alphabetical order.

This means that your custom app_offline.htm file quickly (but not instantly) overwrites the system generated file. Therefore the (ugly) system generated copy of app_offline.htm might be served to requests within a 1-2 second window of initiating the publish, before being updated with your custom file.

The publishing process automatically deletes the app_offline.htm from the remote server irrespective of its content or origin.

The advantage is (over replacing the system copy) is that your own copy is portable, is automatically solution-specific, and works with source control.

I know this question is old, but I hope this helps others coping with this issue.

I use my own

app_offline.htm_

file in the solution, which gets published. My deployment script then renames it (removing the trailing _) to make it active.

I can then run my db scripts/do whatever then rename the file bringing the site back.

You can use a batch file which calls the compiler with the current directory information as parameters... It then copies app_offline.htm and copies the new file over. Run it from where the source is.

I personally use a program which is just a bit more elaborate then the batch and also checks hash's of files to determine if they need updating makes a zip of new files and extracts it to the remote host and eliminates files we designate are for unit testing when going from test to production. I have also combined SVN integration into my solution so when you publish for test or production you also optionally commit to SVN. The program is stored on a network drive and is called from a batch file on the local PC with the current directory info. This way dev's dont have to update to the new deployer or the app_offline if any changes occur. Finally it removes the app_offline.

Check out http://msdn.microsoft.com/en-us/library/system.web.compilation(v=vs.80).aspx for more info or http://msdn.microsoft.com/en-us/library/ms229863(v=vs.80).aspx if you are just making a quick batch!

Additionally in the post you initially referenced and I have also verified you can actually change it but you change it for others using the publish feature as well. This is why you were given the answer you were.

joe

Andrew bullocks answer works like a charm! although it depends on which visual studio you are using.

C:\Users\USERNAME\AppData\Roaming\Microsoft\VisualStudio

is the directory you should first land at, choose your VS version[ 8.0/9.0.....] and edit the app_offile.htm file.

For users of Visual Studio Express 2013 for the Web, the file is located at C:\Users[user]\AppData\Roaming\Microsoft\VWDExpress\12.0

That one can be modified to your needs.

Back in 2006, Scott Gu said that there was no way to customize the file which VS generates on Publish.

Comment within original article

I'd be interested in solving this too, but I was unable to turn up anything definitive to the contrary on Google.

Have you seen this?

App_Offline.htm

It might not be (exactly) what you want but it does solve the issue I think.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!