Problema delle autorizzazioni con la directory virtuale nel percorso UNC


13

Ho una directory virtuale nel mio sito (ambiente di test). È una condivisione UNC che viene anche utilizzata come FTP pubblico.

È configurato per connettersi come account amministratore di dominio e "Impostazioni test" indica che tutto sembra funzionare. Tuttavia quando provo a connettermi ad esso ottengo:

500 - "Impossibile avviare il monitoraggio delle modifiche su \ INTRANET \ FTP \ test \ web.config perché l'accesso è stato negato"

Questo è un ASP.NET YSOD. Non sono sicuro del motivo per cui ASP.NET viene coinvolto in quanto è un file jpg statico che sto richiedendo.

Ho provato ad attivare la traccia richieste non riuscite e questo è l'errore specifico:

  • ModuleName WindowsAuthentication
  • Notifica 2
  • HttpStatus 500
  • Errore del server interno HttpReason
  • HttpSubStatus 0
  • ErrorCode 0
  • ConfigExceptionInfo
  • Notifica AUTHENTICATE_REQUEST
  • ErrorCode L'operazione è stata completata correttamente. (0x0)

Se cambio il "Tipo di accesso al percorso fisico" da ClearText a Rete. Ottengo il seguente errore IIS:

Errore HTTP 500.19 - Server interno

Errore Impossibile accedere alla pagina richiesta perché i dati di configurazione correlati per la pagina non sono validi.

Informazioni dettagliate sull'errore

  • Modulo IIS Web Core
  • Notifica BeginRequest
  • Gestore Non ancora determinato
  • Codice di errore 0x80070005
  • Errore di configurazione Impossibile leggere il file di configurazione a causa di autorizzazioni insufficienti
  • File di configurazione \\?\UNC\INTRANET\FTP\test\web.config
  • URL richiesto http://test.mydowmain.com:80/uploads/images/ca49acf6-6174-412e-8abd-59fab983e931.jpg

  • Percorso fisico \\INTRANET\FTP\test\images\ca49acf6-6174-412e-8abd-59fab983e931.jpg

  • Metodo di accesso Non ancora determinato

  • Accesso utente Non ancora determinato
  • Directory registro traccia richieste non riuscite C:\inetpub\logs\FailedReqLogFiles

Questo non genera abbastanza stranamente un registro richieste fallite: ho impostato la traccia richieste non riuscite per tracciare gli errori con i codici di errore 400-999.

Vale anche la pena notare che se apro la funzionalità di configurazione da IIS, vedo un errore di accesso negato.

Ho esattamente la stessa configurazione sulla mia macchina di sviluppo locale sullo stesso percorso UNC e lo stesso utente che funziona. Solo sul server di prova no.

Che cosa sto facendo di sbagliato?

Risposte:


10

Il fatto che si tratti di un'app ASP.net è probabilmente esattamente il problema qui. L'identità del pool di applicazioni deve disporre dei diritti (non necessariamente dell'identità IIS; per impostazione predefinita, l'identità del pool di app è l'account del servizio di rete locale). Probabilmente è necessario eseguire caspol.exe sul computer IIS.

http://msdn.microsoft.com/en-us/library/cb6t8dtz%28v=vs.80%29.aspx

http://learn.iis.net/page.aspx/50/aspnet-20-35-shared-hosting-configuration/

%windir%\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag 1.  -url "file://\\remotefileserver\content$\*" FullTrust

7

Ho risolto il nostro problema creando account corrispondenti sia sul server Web che sul server unc. Ho quindi modificato il pool di applicazioni per l'esecuzione utilizzando l'account corrispondente non il servizio di rete. Ciò mi ha dato la flessibilità di sincronizzare la password su entrambi i server senza influire sulle altre funzioni dipendenti dal servizio di rete.


3
Dopo aver trascorso 5 ore a cercare una soluzione, finalmente la soluzione di IT Action ha funzionato per me. Quindi ho creato gli stessi utenti esatti su entrambe le macchine e quindi ho impostato il pool di applicazioni per l'esecuzione con quell'account. Stavo per impazzire. Finalmente risolto. Spero che questo aiuti a tutti lo stesso problema

+1 massiccio. Mi trovo sulla stessa barca di @ user249232 - creare un account mirror sulla macchina IIS ha risolto immediatamente il problema dopo molte ricerche. Tuttavia, ho impostato l'utente tramite "Connetti come" nelle impostazioni di base del sito, non modificando l'id del pool di app.
Scruffy,

1
Complimenti per cui questa soluzione funziona, ma questa è una soluzione terribile per me, dal momento che non voglio provare a imitare la configurazione del mio nome di dominio del mio corp nella propria configurazione di Linux vbox personale, che uso una convenzione di nome utente diversa. La sincronizzazione delle password è un'ulteriore complessità, che è eccessiva per me, dal momento che sto già utilizzando server divisi (iis sul mio host e php56 su Linux per avere accesso per il compositore)
Brian Thomas

dopo aver trascorso 2 giorni. Questo ha funzionato per me. Anche io avevo provato le stesse credenziali e non funzionava. Finalmente funziona dopo aver spostato quell'utente comune nel gruppo di amministratori
Ketan Kotak il

2

Se questa sorgente condivisa non è un'applicazione (eq una cartella di immagini), prova a configurare la directory virtuale in modo che venga ignorata dall'applicazione root che include la directory virtuale (nel mio caso l'ho completata modificando il tipo di pool di app root come Classica invece della modalità integrata). Ma se nel punto condiviso è presente un'applicazione, è possibile seguire le istruzioni di @mfinni.


1

È possibile verificare che l'account con cui IIS è in esecuzione disponga dei diritti necessari / necessari per l'UNC problematico.


3
Se questa non fosse un'app ASP.net, avresti fatto soldi. Poiché è in esecuzione in un pool di applicazioni, è l'identità del pool di app a cui è necessario accedere, non l'account utente IIS.
mfinni,

1

Ho avuto lo stesso problema su IIS 7.5 ho trovato la soluzione:

  1. Crea un utente locale sul server con la condivisione
  2. Creare la condivisione di rete, dando all'utente creato nel passaggio 1 le autorizzazioni desiderate. Windows imposterà le autorizzazioni per l'utente che hai specificato
  3. Vai alla directory virtuale su IIS e apri le "impostazioni avanzate"
  4. Immettere l'URL nel percorso fisico per la condivisione di rete come \\<servername>\<sharename>
  5. fare clic su Credenziali percorso fisico; aggiungere le credenziali per l'utente creato nel passaggio 1

0

Ho appena avuto lo stesso problema con un server Web non di dominio che accede ad alcune risorse di dominio utilizzando un account di dominio. Stavamo ottenendo comportamenti strani (le "credenziali di prova" fallivano anche se sapevamo che le credenziali erano giuste, potevamo vedere cartelle e file nella vista contenuto, ma non potevamo "sfogliarli"). La soluzione era quella di creare un utente locale sulla macchina con lo stesso nome dell'utente di dominio.

Sto pensando che questo sarebbe ciò che sarebbe accaduto se il web server fosse un membro del dominio e l'utente locale fosse necessario per accedere ad alcune risorse locali (config?) Per mappare il virtuale.

Spero che aiuti qualcuno.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.