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 и наших копий каталогов. Это сработало примерно так:

  1. скопировать основной сайт в: сервер \ каталог
  2. переработать пул приложений для сайта
  3. скопировать небольшой сайт администратора на сервер \ другой каталог

Проблема заключалась в том, что наш админ-сайт был виртуальным каталогом основного сайта и использовал тот же AppPool. Это работало нормально в.NET 2.0, но я думаю, что мы можем точно определить сбои при обновлении до.NET 4.0. Кажется, работает нормально, если мы сделаем это так:

  1. скопировать основной сайт в: сервер \ каталог
  2. скопировать небольшой сайт администратора на сервер \ другой каталог
  3. переработать пул приложений для сайта

Мы обнаружили, что исключение временных папок 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

Другие вопросы по тегам