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