Я пытаюсь развернуть веб-приложение .NET в IIS (7.5) без каких-либо проблем для пользователей. Я убедился, что Disable Overlapped Recycle имеет значение False , но я все равно сталкиваюсь с той же проблемой каждый раз.
Каждый раз, когда я загружаю новые двоичные файлы для сайта, IIS завершает рабочий процесс до того, как он запустит новый. Поэтому каждый раз, когда я загружаю новые двоичные файлы, пользователи получают следующее сообщение об ошибке:
Ошибка сервера в приложении '/'. Мог не загружать файл или сборку MyApplicationWeb или один из зависимости. Процесс не может получить доступ к файлу, потому что он используется другим процессом. (Исключение от HRESULT: 0x80070020)
Я понятия не имею, как сделать это бесшовным. Сейчас я просто загружаю двоичный файл; но пока происходит загрузка (или локальная копия), она дает указанное выше поведение. Я также пробовал использовать веб-сад, но с тем же результатом.
То, что я не ищу:
Я действительно думаю, что это вполне выполнимо, учитывая http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/24e3c22e-79a9-4f07-a407-dbd0e7f35432.mspx?mfr= true
Обновление: В статье выше говорится:
Однако, поскольку таймаут выключения значение выключения или запуска равно настраиваемый, рабочий процесс может быть прекращено, пока он еще обслуживает запросы, если он не завершается обслуживание существующих запросов в рамках ограничение по времени.
Я понятия не имею, где найти это значение и что оно по умолчанию. Если это меньше, чем несколько секунд, это может объяснить мои результаты.
ps. Я публикую это на SO, а не на SF / Webmasters и т. Д., Потому что я думаю, что такого рода знания, вероятно, будут минимальными среди людей, которые не занимаются разработкой, я надеюсь, что это нормально.