2009-11-12 4 views
0

J'ai méthode pour Compresser le fichier avec gzip:Erreur HTTP 401.3 sur fichier créé .gz

public static void CompressFile(string filePath) 
{ 

     string compressedFilePath = Path.GetTempFileName(); 
     using (FileStream compressedFileStream = new FileStream(compressedFilePath, FileMode.Append, FileSystemRights.Write, FileShare.Write, BufferSize, FileOptions.None)) 
     { 

     GZipStream gzipStream = new GZipStream(compressedFileStream, CompressionMode.Compress); 
     using (FileStream uncompressedFileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read)) 
     { 
      int offset = 0; 
      while (true) 
      { 
      byte[] buffer = new byte[offset + BufferSize]; 
      int bytesRead = uncompressedFileStream.Read(buffer, offset, BufferSize); 
      if (bytesRead == 0) 
       break; 

      gzipStream.Write(buffer, offset, bytesRead); 
      offset += bytesRead; 
      } 
     } 
     gzipStream.Close(); 
     } 

     File.Delete(filePath); 
     File.Move(compressedFilePath, filePath); 
} 

Mon problème est que sur le serveur de test (Win08 R2), il crée un fichier et il peut être téléchargé via le navigateur, mais sur le serveur d'hébergement Web (Win08 R1 plus ancien) il crée également un fichier, mais si je veux le télécharger, l'accès refusé l'exception est levée. Les différences sont dans l'autorisation de fichier. Sur le serveur R2 a accès au fichier Identité du pool d'applications (par exemple "MyWebSite"), mais sur R1 seulement IIS_IUSRS avec "autorisation spéciale".

Répondre

0

Vérifiez que vous avez ajouté un type MIME pour l'extension .gz dans la configuration IIS. Je pense que cela peut causer le problème dont vous parlez.

+0

oui j'ai ceci sur les deux serveurs: .gz - application/x-gzip –

Questions connexes