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