2009-10-27 2 views
0

У меня есть веб-сайт, который позволяет загружать и скачивать безопасные файлы (ssl). Сайт работает на сервере Window 2003 с IIS 6.0; asp.net 2.Загрузка файла не удалась для файлов более 64 МБ

При использовании этого кода:

protected void StartDownLoad(string filename) 
    { 
     Response.Clear(); 
     if(filename.EndsWith("zip")) 
      Response.ContentType = "application/zip"; 
     else 
      Response.ContentType = "application/msword"; 

     string path = "C:\\Inetpub\\sites\\testsite\\secureDocs\\" + filename; 
     Response.WriteFile(path); 
     string headDesc = "inline;filename=" + filename; 

     Response.AddHeader("Content-Disposition", headDesc); 
     Response.End(); 
    }

В моих тестах через 62 МБ загрузки файлов без каких-либо проблем - это 65MB появляется, чтобы начать загрузку, а затем немедленно прекратить. Журналы ошибок HTTP имеют четыре записи, каждая из которых показывает «Connection_Dropped». Если я удалю разрешения из папки и напрямую получаю доступ к файлу с помощью https url, я могу загружать файлы, которые превышают 65 МБ, поэтому не похоже, что это проблема IIS. Есть ли параметр asp.net, который ограничивает запись ответа? Это проблема IIS? Кто-нибудь сталкивался с этим раньше? Любые решения?

ответ

2

Вы можете попробовать использовать

Response.TransmitFile(path) 

вместо

Response.WriteFile(path) 

TransmitFile() не буфер файла.

До свидания.

+0

Большое вам спасибо. –

Смежные вопросы