Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Передача больших файлов на клиент / 18 сообщений из 18, страница 1 из 1
07.11.2011, 10:56:48
    #37513980
skon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
Доброго всем времени суток.
Возникла проблема следующего рода. Вот тестовый примерчик, реализующий проблемную часть:
1. Простая форма, отправляющая документ на клиент
Код: plaintext
1.
2.
3.
const string docPath = @"***\TstDoc.doc";
Sender sndr = new Sender(Response, Server);
sndr.SendFileToClient(docPath, String.Format("application/{0}", "doc"), "testOutput.doc");
2. Сопсно Sender
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
    public class Sender
    {
        private const string ContentDispositionTag = "content-disposition";
        private const string ContentDispositionFormat = "{0}; {1}={2}";
        private const string AttachmentTag = "attachment";
        private const string FileNameTag = "filename";

        private readonly HttpResponse response;
        private readonly HttpServerUtility server;

        public Sender(HttpResponse resp, HttpServerUtility srv)
        {
            response = resp;
            server = srv;
        }

        public void SendFileToClient(string fileName, string contentType, string nameForClient)
        {
            response.Buffer = true;
            response.Clear();
            response.ClearContent();
            response.ClearHeaders();
 
            response.ContentType = contentType;

            string tst = StrEncoder.GetEncodeFileName(nameForClient, server);
            response.AppendHeader(
                  ContentDispositionTag,
                  String.Format(
                      ContentDispositionFormat,
                      AttachmentTag,
                      FileNameTag,
                      tst
                      )
                  );
            response.WriteFile(fileName);
            response.Flush();
            response.End();
        }
    }
Не удается отправить файло свыше определенного размера. На клиентских машинах пишет "remote host closed connection", на сервере, где приложение развернуто, со слов администратора, просит повторно авторизоваться. Локально на моей машине примерчик без проблем отправляет файлы гораздо большего размера.

Подскажите, плз, в чём могут быть проблемы
...
Рейтинг: 0 / 0
07.11.2011, 11:10:27
    #37514006
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
Отдаете, надеюсь, через хендлер? В случае aspx нужно глянуть свойство Page.Buffer.
...
Рейтинг: 0 / 0
07.11.2011, 11:33:22
    #37514040
skon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
МСУОтдаете, надеюсь, через хендлер?
нет

МСУВ случае aspx нужно глянуть свойство Page.Buffer.
нигде программно не устанавливается, по-дефолту true. файлы в пару десятков Мб отправляются без проблем.
...
Рейтинг: 0 / 0
07.11.2011, 11:56:32
    #37514086
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
skonпо-дефолту true
Поставьте false.
...
Рейтинг: 0 / 0
07.11.2011, 11:56:58
    #37514087
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
skonнет
Плохо.
...
Рейтинг: 0 / 0
07.11.2011, 12:10:43
    #37514116
skon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
МСУskonнет
Плохо.
кто ж спорит, но как есть...есть "небольшие" административные рамки - пересобирать приложение, это последняя из мер. Неплохо, если удастся решить проблему за счет изменения web.config, настроек пула в iis etc...В идеале пока добиться того, чтобы локально проблема воспроизводилась
...
Рейтинг: 0 / 0
07.11.2011, 12:16:47
    #37514130
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
skonкто ж спорит, но как есть...
1. Что мешает переисать под хендлер?
2. Что по Page.Buffer?
...
Рейтинг: 0 / 0
07.11.2011, 12:26:25
    #37514148
skon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
МСУskonкто ж спорит, но как есть...
1. Что мешает переисать под хендлер?
2. Что по Page.Buffer?
1. административные рамки)...переписать-то перепишу, развернуть не скоро получится
2. Page.Buffer = false не изменил картины, локально на моей машине файлы передаются как и раньше что 2 Мб, что 200
...
Рейтинг: 0 / 0
07.11.2011, 13:05:52
    #37514252
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
файл надо отдавать через Response.TransmitFile
...
Рейтинг: 0 / 0
07.11.2011, 13:25:47
    #37514301
skon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
Яростный Мечфайл надо отдавать через Response.TransmitFile
я так понимаю это те же яица, только без буфферезации. Или я не правильно понимаю?
...
Рейтинг: 0 / 0
07.11.2011, 13:33:52
    #37514316
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
skonя так понимаю это те же яица, только без буфферезации.да.

судя по названию, здесь юзается сокетная функция TransmitFile, специально предназначенная для отправки файлов.
...
Рейтинг: 0 / 0
07.11.2011, 13:34:27
    #37514319
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
...
Рейтинг: 0 / 0
07.11.2011, 13:45:56
    #37514338
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
skon,

А можно поконкретнее размер? Дело в том, что у кого-то суп жидкий, а у кого-то жемчуг мелкий... .
...
Рейтинг: 0 / 0
07.11.2011, 13:48:23
    #37514342
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
here
...
Рейтинг: 0 / 0
07.11.2011, 13:54:29
    #37514349
skon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
ShSergeskon,

А можно поконкретнее размер? Дело в том, что у кого-то суп жидкий, а у кого-то жемчуг мелкий... .
Можно, но с определённой дискретностью - дело в том, что на проблемной машине я не могу погонять тестовый примерчик и данные в БД не подправлю. Так вот отчет в 15 Мб отправляется, а вот больше 40 уже нет
...
Рейтинг: 0 / 0
07.11.2011, 13:59:00
    #37514363
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
смотри не размер файла, а время от начала загрузки !!!
...
Рейтинг: 0 / 0
07.11.2011, 14:54:47
    #37514497
skon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
vladgrighere
перечитал...и чот потерял уверенность, что проблема с буффером. Закралось подозрение, что это "ФОРТ" мне режет
надо пошуршать в настройках
...
Рейтинг: 0 / 0
09.11.2011, 16:53:29
    #37518669
skon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача больших файлов на клиент
Яростный Мечфайл надо отдавать через Response.TransmitFile
Спасибо за подсказ, проблема в какой-то степени решилась - файлы действительно отдаются без проблем
А вот заставить свою машину упасть с ошибкой при буфферизации мне так и не удалось
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Передача больших файлов на клиент / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]