2010-10-19 21 views
21

Tengo una aplicación web ASP.NET de AJAX desarrollada usando .NET 4.0, usando TFS como control de origen. Recientemente actualizamos nuestras herramientas de desarrollo para usar VS2010 y TFS 2010 en forma exclusiva, pero ahora cada vez que se realiza un check-out de un archivo, vemos que Visual Studio recarga todos los símbolos y se descartan todas las sesiones.App_offline.htm creado/eliminado cada vez que reviso un archivo en TFS

Después de poner un código de registro de errores, descubrimos que el motivo del reciclaje es que App_offline.htm está cambiando cada vez que lo comprobamos. Esto no existe en ninguna parte del proyecto, y mi SO-fu ha encontrado algo de información sobre SQL Express que hace que este archivo se cree y elimine, por lo que es posible que eso esté sucediendo aquí.

Parece que tengo instalado SQL-Express, pero incluso deshabilitando los servicios que se están ejecutando, el problema persiste.

¿Hay alguna manera de evitar que un check out agregue o elimine este archivo, si esto es realmente lo que está sucediendo? Es más que frustrante hacer que la aplicación se recicle cuando simplemente reviso un archivo ...

Respuesta

14

He descubierto una solución temporal.

1) Vaya a la ubicación en la que Visual Studio almacena en caché el archivo app_offline.htm C: \ Users [usuario] \ AppData \ Roaming \ Microsoft \ VisualStudio \ 11.0 \ (sustituya [usuario] con su nombre de usuario)

2) Eliminar el archivo app_offline.htm

(NOTA: esto por sí solo no va a resolver, como VS regenera el archivo de nuevo cuando no se encontró)

3) Crear un directorio llamado app_offline.htm (un directorio!)

Esto provoca esencialmente un error con el proceso que intenta utilizar el archivo porque no es un archivo y el nombre choque significa VS no puede tratar de recrear la archivo. Afortunadamente, el error no tiene efectos secundarios no deseados.

Ahora continúe con el uso de VS y Team Foundation Server y disfrute de no tener constantemente el appdomain recargo.

Esto, por supuesto, significa que cualquier proceso de publicación probablemente no use el archivo app_offline.htm, por lo que deberá vigilarlo.

+0

¡Esto es brillante! Felicitaciones por el hallazgo. Como una ventaja adicional, la operación de pago TFS es mucho más rápida, creo que estaba esperando que el dominio de la aplicación vuelva a cargar antes. – XwipeoutX

0

Tal vez, alguien hacer el registro en el archivo de app_offline, cuando llegue el proyecto, el archivo viene. Mire su repositorio de origen.

+0

El archivo no está registrado. Como dije, cada vez que se descarga un archivo, el archivo se crea y se elimina, presumiblemente para forzar un archivo. reciclar, que no quiero que suceda. – XwipeoutX

1

Como también tengo el problema, decidí intentar localizarlo. Primero descubrí que si las conexiones de mi base de datos están desconectadas y hago clic en el botón Actualizar en el Explorador del servidor, crea el archivo app_offline en la raíz de mi sitio web y luego lo elimina. Lo rehice varias veces.

Actualmente tengo 3 conexiones de base de datos en el explorador del servidor. Si desconecto las 2 conexiones que en realidad son conexiones a una base de datos en un servidor SQL remoto, no produce el archivo app_offline cuando actualizo. SÓLO produce el archivo app_offline si me desconecto de un archivo .MDF LOCAL, y luego lo actualizo (lo que vuelve a conectar con ese archivo .mdf y el X desconectado rojo desaparece). Efectivamente, después de cada reconexión a esa base de datos local, el archivo app_offline.htm aparece en mi Papelera de reciclaje.

Avanzando un poco más, extraje la base de datos local (archivo .mdf) y moví el archivo a mi escritorio. Luego reinició VS2010 y no pudo volver a producir el error. Volví a guardar los archivos, volví a establecer la conexión y comencé a obtener la app_offline nuevamente. Luego deshabilité el servicio SQLExpress, y obtuve algunos otros errores, , pero incluso con el servicio SQLExpress deshabilitado, aún tengo la app_offline en mi Papelera de reciclaje.

Por lo tanto, supongo que mi respuesta es deshacerse de las bases de datos locales .mdf si es posible. No es una buena opción para mí porque necesito esa base de datos local cuando estoy trabajando en el código de forma remota, pero si no necesitas ninguna base de datos local, tal vez podrías intentar eliminarla.

Nota: Estoy usando VS2010 (y algunas veces VS2008) y SQLExpress 2008 RS. No uso TFS.

+0

Parece útil para aquellos que usan SQLExpress en su solución. No lo somos, no hay conexiones de datos en nuestro explorador de servidores. – XwipeoutX

Cuestiones relacionadas