ASP.NET не может создать/теневую копию в ПРОДУКЦИИ
Недавно мы обновили довольно большой веб-сайт ASP.NET(~ 1500th alexa traffic ranking) для использования VS2010 и .NET 4.0, работающих под управлением Windows Server 2008 R2
С тех пор, когда мы развертываем новые версии сайта, мы иногда замечаем ту же ошибку в этом сообщении:
ASP.Net не может создать/теневую копию
Сообщение об ошибке:
Невозможно создать/теневую копию 'xxxx, Version = 4.0.4301.26898, Culture = neutral, PublicKeyToken = null', когда этот файл уже существует
Однако, в отличие от этого сообщения, ошибка возникает только в наших производственных средах и только на некоторых серверах.
После того, как мы отправляем новую версию кода, мы перерабатываем все AppPools, и начинается ошибка.
Еще одна утилита AppPool, похоже, устраняет проблему, однако я действительно хочу знать, как мы можем избежать этой проблемы в первую очередь?
Ответы
Ответ 1
Мы наконец решили наши проблемы "Невозможно создать/теневую копию". Проблема оказалась обусловлена сроками утилизации нашего AppPool и копией нашего каталога. Он работал примерно так:
- скопируйте главный веб-сайт в: server\directory
- утилизировать пул приложений для веб-сайта
- копировать небольшой сайт администратора на сервер \otherdirectory
Проблема заключалась в том, что наш административный сайт был виртуальным каталогом основного сайта и использовал тот же AppPool. Это отлично работает в .NET 2.0, но я думаю, что мы можем определить неудачи при обновлении до .NET 4.0. Кажется, просто отлично, если мы сделаем это следующим образом:
- скопируйте главный веб-сайт в: server\directory
- копировать небольшой сайт администратора на сервер \otherdirectory
- утилизировать пул приложений для веб-сайта
Ответ 2
Мы обнаружили, что исключение временных папок asp.net из индексации (и сканирования вирусов) устранило наши ошибки в теневом копировании.
Пример PowerShell script для службы индексирования в Windows Server 2003:
Set-ItemProperty -path
HKLM:\SYSTEM\CurrentControlSet\Control\ContentIndex\Каталоги\Web\Скоупсом -name "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Временные файлы ASP.NET" -значение ", 4"
Перезапуск-сервис cisvc