Почему app_offline.htm продолжает появляться в моем веб-проекте? - PullRequest
10 голосов
/ 27 января 2010

Я регулярно (каждые несколько дней) публикую свой веб-проект ASP.NET на локальном веб-сервере.

Но самая странная вещь продолжается ... файл с именем app_offline.htm продолжает появляться, не запрещено, в моем веб-проекте!

Я несколько раз удалял этот файл, он не находится под контролем исходного кода, и AFAIK больше никто не вмешивается в проект.Но практически каждый раз, когда я пытаюсь опубликовать проект, моя публикация заканчивается неудачей (Unable to add 'app_offline.htm' to the Web site. The file 'app_offline.htm' already exists in this Web site.Error: The operation could not be completed. Unspecified error), я возвращаюсь, чтобы посмотреть на проект, и он снова, большой, как жизнь, и я подозреваю, что если бы это могло быть, это дует малинана меня.: p

Прочитав немного об этом файле, я понял, что это простой способ перевести ваше приложение в автономный режим.Но я нигде не видел, чтобы он навязывался вам произвольно без всякой веской причины.

Итак, где же это * & ^% $ # @% !!исходящий файл, и почему VS считает, что он мне нужен?

Ответы [ 3 ]

7 голосов
/ 27 января 2010

Это "особенность" .NET 2.0

http://weblogs.asp.net/scottgu/archive/2005/10/06/426755.aspx

http://www.codeproject.com/KB/aspnet/app_offline.aspx

"Самый простой способ обойти это - никогда не публиковать напрямую на ваш сервер. В любом случае, вы не должны ... Опубликовать в локальную папку, затем скопировать сайт вверх "

Вы используете Visual Studio? http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=102778

4 голосов
/ 27 января 2010

По умолчанию процесс публикации помещает его в каталог назначения, но затем удаляет его, когда процесс публикации завершен. Возможно, он не может удалить его, когда пытается?

Вот выдержка из статьи MSDN здесь :

Перед копированием файлов приложения инструмент «Копировать веб-сайт» помещает файл с именем App_offline.htm в корневой каталог целевого веб-сайта. Пока существует файл App_offline.htm, любые запросы к веб-сайту перенаправляются в этот файл. Файл отображает дружественное сообщение, которое сообщает клиентам, что веб-сайт обновляется. После копирования всех файлов веб-сайта инструмент «Копировать веб-сайт» удаляет файл App_offline.htm с целевого веб-сайта.

Я думаю, что по какой-то причине есть два события публикации, так или иначе конфликтующие друг с другом?

Чтобы обойти это, я использую nant для построения своего решения, а затем копирую только то, что мне нужно. Я действительно сначала копирую файл app_offline, используя эту функцию, но потом мне удается, когда он копируется и удаляется.

1 голос
/ 14 февраля 2019

Если база данных не поддерживает несколько процессов (Exp. SQL Server 2005 Express Edition или Access). Только один процесс может получить доступ к базе данных одновременно. Поэтому, когда к базе данных осуществляется доступ через Visual Studio, среда выполнения ASP.net не может получить доступ к базе данных. Это приведет к внутренней ошибке сервера. Чтобы предотвратить это, VS 2005 помещает файл app_offline.htm в корневой каталог приложения. Файл содержит вышеуказанное сообщение. Это заставляет ASP.net переводить приложение в автономный режим. Обратите внимание, что доступ к базе данных означает открытие любого компонента базы данных (т.е. таблицы, представления, хранимой процедуры и т. Д.) В окне конструктора. Когда окно конструктора закрыто, VS 2005 или VS 2008 удаляет файл app_offline.htm, переводя приложение в режим onliner.

Нашел здесь ...

...