Riavvio applicazione per cartella eliminata, aggiunta, aggiornata

La modifica, l’aggiunta o l’eliminazione di determinati tipi di file all’interno delle cartelle note dell’applicazione causerà il riavvio dell’applicazione. Tuttavia, quando viene aggiornato il file di registro nell’applicazione, perché l’applicazione non viene riavviata. Poi

PropertyInfo p = typeof(System.Web.HttpRuntime).GetProperty("FileChangesMonitor", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static); object o = p.GetValue(null, null); FieldInfo f = o.GetType().GetField("_dirMonSubdirs", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.IgnoreCase); object monitor = f.GetValue(o); MethodInfo m = monitor.GetType().GetMethod("StopMonitoring", BindingFlags.Instance | BindingFlags.NonPublic); m.Invoke(monitor, new object[] { }); 

Con queste modifiche, posso creare / modificare / eliminare cartelle senza causare il riavvio dell’applicazione. Ma questo codice è per tutte le cartelle note dell’applicazione. Voglio sapere che è per una cartella senza causare il riavvio dell’applicazione.

Il tuo problema è che non appena modifichi o cancelli qualsiasi file dalla directory delle applicazioni, sta causando il riavvio dell’appDomain per caricare le modifiche. Hai 4 opzioni per quanto ho potuto cercare:

  1. Disabilita il monitoraggio della directory, che hai già provato.
  2. Creare una directory virtuale sotto l’applicazione e indirizzarla a una cartella esterna alla cartella dell’applicazione. Sposta il contenuto che deve essere modificato in questa cartella e può apportare modifiche.
  3. Usa sessione fuori processo.
  4. Modificare il registro per disabilitare il monitoraggio come indicato (non consigliato):

Informazioni di registro

loadTOCNode (3, ‘risoluzione’); HKLM \ Software \ Microsoft \ ASP.NET \ FCNMode

Nella tabella seguente sono elencati i possibili valori per il valore DWORD di FCNMode e il comportamento associato a ciascun valore.

Comportamento del valore non esiste Questo è il comportamento predefinito. Per ogni sottodirectory, l’applicazione creerà un object che monitorerà la sottodirectory. 0 o maggiore di 2 Questo è il comportamento predefinito. Per ogni sottodirectory, l’applicazione creerà un object che monitorerà la sottodirectory.

1 L’applicazione disabiliterà le notifiche di modifica dei file (FCN). [:)].

2 L’applicazione creerà un object per monitorare la directory principale. L’applicazione utilizzerà questo object per monitorare ciascuna sottodirectory.

Il metodo sopra è preso da qui

Inoltre, puoi consultare i seguenti link per maggiori informazioni:

Bene, questo potrebbe essere in grado di aiutare con il tuo problema, non ho potuto scoprire nulla su come fermare l’appDomain change monitoring per una cartella specifica. O controllerebbe i cambiamenti o no. Spero che questo ti aiuti. Saluti.