2013-06-17 20 views
5

Ho un sito Web con una directory virtuale che contiene PDF. Gli utenti accedono ai PDF utilizzando un URL come http://myApp.com/PDFs/12345678.pdf
I PDF sono directory virtuali associate a \\ actualPhysicalServerName \ PDFsDirectory \ Questo funziona.IIS dimentica le autorizzazioni della directory virtuale - Si è verificato un errore durante il caricamento di un file di configurazione: Impossibile avviare le modifiche di monitoraggio

Riprogengo regolarmente l'applicazione. Una volta ridistribuita l'applicazione e riavviato il sito Web, gli utenti non potranno più accedere alla directory virtuale fino al riavvio di IIS.

Accesso alla URL sopra dà il seguente errore - un errore durante il caricamento di un file di configurazione: Impossibile avviare il monitoraggio delle modifiche al \\ actualPhysicalServerName \ PDFsDirectory \ web.config perché l'accesso è negato.
a System.Web.FileChangesMonitor.FindDirectoryMonitor (String dir, booleano addIfNotFound, booleano throwOnError)
a System.Web.FileChangesMonitor.StartMonitoringFile (alias String, FileChangeEventHandler callback)
a System.Web.Configuration.WebConfigurationHost.StartMonitoringStreamForChanges (String streamName, StreamChangeCallback callback)
a System.Configuration.BaseConfigurationRecord.MonitorStream (String configKey, String configSource, String streamName)
a System.Configuration.BaseConfigurationRecord.InitConfigFromFile()

il riavvio del pool di applicazioni non aiuta. Devo riavviare IIS. Una volta riavviato IIS, è possibile accedere alla directory virtuale come previsto.

È questo comportamento previsto? Ho configurato le mie directory virtuali in modo errato?

Sto utilizzando IIS 7.5, server Windows 7 e .NET 4.5.

risposta

7

Per chiunque altro frustrato con lo stesso problema - mentre non ho trovato il nocciolo del problema, ho capito che questo problema era correlato all'Identity del pool di applicazioni in cui il sito Web era in esecuzione.

Nel mio caso, la soluzione era di cambiare l'identità del pool di applicazioni dall'account predefinito ApplicationPoolIdentity a un account personalizzato che è un amministratore su tutte le macchine coinvolte.

Per fare questo

  • clic destro sul pool di applicazioni in IIS, scegliere Proprietà avanzate.
  • In ProcessModel-> Identità, selezionare Identità. Scegliere Account personalizzato (Account predefinito, Identità pool di applicazioni è l'impostazione predefinita in IIS 7.5)
  • Passare all'utilizzo di un account Dominio personalizzato, ovvero un amministratore su questa macchina, nonché la macchina su cui è ospitata la directory virtuale.
    • Riavviare il pool di applicazioni.
12

Ho risolto questo problema in questo modo:

  1. Creato nuova piscina con "No codice gestito" e le impostazioni "Classic".
  2. Convertito directory virtuale di applicazioni, collegando con un account utente con autorizzazioni sulla condivisione
  3. avere applicazione utilizzare la nuova piscina
1

ho avuto una directory virtuale che punta a immagini su UNC condivisione. Tutto andava bene fino a quando non abbiamo aggiornato l'app principale su .NET 4.5.

Abbiamo dovuto convertire VirDir a Virtual Application con 4.0 Application Pool integrato.

+0

Mi chiedevo perché questo "ha smesso" di funzionare, fino a quando non ho visto la chiave "app genitore aggiornata su .NET 4.5". – Jim

Problemi correlati