创建.gz文件的HTTP错误401.3

时间:2009-11-12 13:52:04

标签: c# asp.net iis acl

我有使用GZip压缩文件的方法:

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);
 }

我的问题是,在测试服务器(Win08 R2)上它创建文件并且可以通过浏览器下载,但是在webhosting服务器(较旧的Win08 R1)上它也会创建文件,但是如果我想下载它,则访问被拒绝抛出异常。 差异在于文件权限。在R2服务器上可以访问文件应用程序池标识(例如“MyWebSite”),但在R1上只有IIS_IUSRS具有“特殊权限”。

1 个答案:

答案 0 :(得分:0)

确保在IIS配置中为.gz扩展名添加了MIME类型。我认为这可能会引起您所指的问题。