2011-10-13 12 views
14

recientemente hemos actualizado un sitio web ASP.NET bastante grande (~ clasificación 1500a tráfico de Alexa) para usar VS2010 y .NET 4.0 que se ejecuta en Windows Server 2008 R2ASP.Net no puede crear copias/sombra en la producción

Desde luego, cuando desplegamos nuevas versiones del sitio, ocasionalmente notamos el mismo error en esta publicación: ASP.Net cannot create/shadow copy El mensaje de error es: No se puede crear/copia oculta 'xxxx, Versión = 4.0.4301.26898, Culture = neutral, PublicKeyToken = null 'cuando ese archivo ya existe

Sin embargo, a diferencia de esa publicación, el error se produce solo en nuestros entornos de producción & solo en algunos servidores.

Después de que enviemos una nueva versión del código, reciclamos todos los AppPools y comienza el error.

Otro reciclado de AppPool parece solucionar el problema, pero realmente quiero saber cómo podemos evitar este problema en primer lugar.

Respuesta

4

Finalmente hemos resuelto nuestros problemas 'No se puede crear/copiar sombra'. El problema se debió a la sincronización de nuestro AppPool reciclaje & nuestras copias de directorio. Se trabajó algo como esto:

  1. copia del Web site principal a: servidor \ directorio
  2. reciclaje de un grupo de aplicaciones para el sitio web
  3. copia pequeña sitio de administración de servidor \ otherdirectory

El problema era que nuestra el sitio de administración era un directorio virtual del sitio principal y usaba el mismo AppPool. Esto funcionó bien en .NET 2.0, pero creo que podemos identificar las fallas cuando nos actualicé a .NET 4.0. Parece funcionar bien si lo hacemos de esta manera siguiente:

  1. copia del Web site principal a: \ directorio del servidor
  2. copiar pequeño sitio de administración de servidor \ otherdirectory
  3. reciclaje de un grupo de aplicaciones para el sitio web
4

Descubrimos que al excluir las carpetas temporales de asp.net de la indexación (y el escaneo de virus) eliminamos nuestros errores ocultos.

guión

Ejemplo PowerShell para el servicio de indexación en Windows Server 2003:

Set-ItemProperty -path

HKLM: \ SYSTEM \ CurrentControlSet \ Control \ ContentIndex \ Catálogos \ Web \ Scopes -nombre “C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files” -valor" ,, 4"

Restart-Service cisvc

+0

Estamos usando Windows Server 2008 R2 y no teníamos esa entrada de registro. Gracias por la sugerencia, veremos si hay algo equivalente que podamos hacer. – Richard

+0

Evitar que mi software AntiVirus escanee Los archivos temporales de ASP.NET parecen haber hecho el truco para mí. –

Cuestiones relacionadas