2010-10-19 13 views
21

Ho un'applicazione Web ASP.NET pesante AJAX sviluppata utilizzando .NET 4.0, utilizzando TFS come controllo del codice sorgente. Recentemente abbiamo aggiornato i nostri strumenti di sviluppo per utilizzare esclusivamente VS2010 e TFS 2010, ma ora ogni volta che viene estratto un file, vediamo che lo studio visivo ricarica tutti i simboli e tutte le sessioni vengono eliminate.App_offline.htm creato/eliminato ogni volta che estraggo un file in TFS

Dopo aver messo un po 'di codice di registrazione degli errori, abbiamo scoperto il motivo per il riciclo è calcola app_offline.htm sta cambiando ogni volta che ce ne siamo andati. Questo non esiste da nessuna parte nel progetto e il mio SO-fu ha trovato alcune informazioni su SQL Express che fanno si che questo file venga creato ed eliminato, quindi è possibile che ciò che sta accadendo qui.

sembra che io ho installato SQL-Express, ma anche la disattivazione dei servizi in esecuzione, il problema persiste.

Esiste un modo per fermare un check-out di aggiungere/rimuovere questo file, se questo è davvero ciò che sta accadendo? E 'al di là frustrante avere il riciclo applicazione ogni volta che semplicemente estrarre un file ...

risposta

14

Ho scoperto una soluzione.

1) Andare alla posizione in cui Visual Studio memorizza nella cache il file app_offline.htm C: \ Users [utente] \ AppData \ Roaming \ Microsoft \ VisualStudio \ 11.0 \ (sostituire [utente] con il tuo username)

2) Eliminare il file app_offline.htm

(NOTA: questo da solo non risolverà, come VS rigenera nuovamente il file quando non trovato)

3) Creare una directory denominata app_offline.htm (una directory!)

Questo fa sì che in sostanza un errore con il processo che tenta di utilizzare il file perché non è un file e il nome scontro significa VS non può cercare di ricreare il file. Fortunatamente l'errore non ha effetti collaterali indesiderati.

Ora continua a utilizzare VS e Team Foundation Server e divertiti a non ricaricare costantemente l'appdomain!

Ciò significa ovviamente che qualsiasi processo di pubblicazione probabilmente non utilizzerà il file app_offline.htm, quindi è necessario tenerlo d'occhio.

+0

Questo è geniale! Complimenti per la scoperta. Come bonus aggiuntivo, l'operazione di checkout TFS è molto più veloce, suppongo che fosse in attesa sul dominio app per ricaricare prima. – XwipeoutX

0

Forse, qualcuno fare il check-in nel file app_offline, quando si ottiene il progetto, il file viene. Guarda il tuo repository sorgente.

+0

Il file non è archiviato. Come ho detto, ogni volta che viene estratto un file, il file viene creato e rimosso, presumibilmente per forzare un riciclare, che non voglio accadere. – XwipeoutX

1

Dato che anche io ho il problema, ho deciso di provare a rintracciarlo. Innanzitutto ho capito che se le mie connessioni al database non sono in linea e faccio clic sul pulsante Aggiorna in Esplora server, crea il file app_offline nella directory principale del mio sito Web, quindi lo elimina. L'ho ri-prodotto più volte.

In realtà ho 3 connessioni di database nel server explorer. Se disconnetto le 2 connessioni che sono effettivamente connessioni a un database su un server SQL remoto, lo non produce durante l'aggiornamento del file app_offline. Produce il file app_offline SOLO se disconnetto da un file .MDF LOCAL e quindi aggiorna (che si ricollega a quel file .mdf e la X rossa disconnessa si spegne). Abbastanza sicuro, dopo ogni ricollegamento a quel database locale, il file app_offline.htm si presenta nel mio cestino.

Facendo un ulteriore passo avanti, ho staccato il database locale (mdf file) e si è trasferito il file al mio desktop. Quindi riavviare VS2010 e non è stato possibile riprodurre l'errore. Ho ripristinato i file, ho ristabilito la connessione e ho riavviato nuovamente l'app_offline. Quindi ho disabilitato il servizio SQLExpress e ho ricevuto altri errori, , ma anche con il servizio SQLExpress disabilitato, ho ancora ottenuto l'app_offline nel Cestino.

Quindi, suppongo che la mia risposta sia di sbarazzarsi dei database mdf locali se possibile. Non è una buona opzione per me perché ho bisogno di quel database locale quando sto lavorando al codice da remoto, ma se non hai bisogno di alcun database locale, potresti provare a rimuoverli.

Nota: sto usando VS2010 (e talvolta VS2008) e SQLExpress 2008 RS. Non uso TFS.

+0

Sembra utile per chi utilizza SQLExpress nella propria soluzione. Non lo siamo: non ci sono connessioni dati nel nostro server explorer. – XwipeoutX