2013-02-10 21 views
5

Prima di tutto, mi risulta che sto usando ASP.NET 4.5 con DefaultAppPool (4.0 integrato). Ho anche configurato l'accesso anonimo all'utente DefaultAppPool. Ho dato tutto l'accesso a DefaultAppPool. Il metodo System.Security.Principal.WindowsIdentity.GetCurrent() mi dà lo stesso utente. Ma quando viene eseguita la seguente riga, mi viene restituita l'eccezione Access to the path 'XXXX' is denied.. Quindi, a scopo di test, ho dato tutti i diritti all'utente EveryOne, ma continuo a ricevere lo stesso errore. Ecco la riga di codice. Si noti la TRUSExtractToFile Errore di accesso negato?

 using (ZipArchive archive = new ZipArchive(zipStream)) 
     { 
      foreach (ZipArchiveEntry file in archive.Entries) 
      { 
       file.ExtractToFile(location,true); 
      } 
     } 

Ecco l'StackTrace,

[UnauthorizedAccessException: Access to the path 'XXX' is denied.] 
    System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +10793558 
    System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) +1352 
    System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) +65 
    System.IO.Compression.ZipFileExtensions.ExtractToFile(ZipArchiveEntry source, String destinationFileName, Boolean overwrite) +96 
    XX.XX.XX.ExtractZipFile(Stream zipStream, String location) in XX.cs:44 
    XX.XX.XX.XX.XX.XX.ExtractZipFile(Stream zipStream, String location) in XXX.cs:17 

enter image description here

+0

L'utente DefaultAppPool ha accesso (autorizzazione di lettura/scrittura) al percorso in questione? – Tim

+0

@Tim, Sì Controllo completo. Inoltre ho dato l'accesso completo a tutti gli utenti. – user960567

+0

L'utente DefaultAppPool ha accesso Execute/Traverse su tutte le cartelle nel percorso? –

risposta

10

.NET framework in questo caso dandomi l'eccezione sbagliata. Il problema era che stavo passando la posizione (posizione della cartella senza nome file). Quindi, dopo aver incluso il percorso completo, funziona.