Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите с OpenXML
|
|||
|---|---|---|---|
|
#18+
Ситуация следующая. Вооружившись статьей на хабре ( http://habrahabr.ru/post/109820/ ), сделал все как там написано. Подготовил шаблон документа Word. Загрузил в Open XML SDK 2.0 Productivity Tool, сделал Reflect Code, перенес класс в студию. Код на странице для отдачи ссылки на файл: Код: c# 1. 2. 3. 4. 5. 6. GeneratedCodeTest.GeneratedClass().CreatePackageAsBytes() - вот здесь создается пакет DOCX. Все замечательно работает если класс небольшого размера (пробовал 100-200 кб). Как только я начинаю использовать требуемый шаблон (он получился размером 4.9Мб) - происходит зависание. W3P жрет 13-14% процессорного времени и файл не скачивается. В браузере крутится ожидание. Пробовал на разных браузерах и серверах. Причем что интересно, если проект запускать из студии - все замечательно работает, а как только перехожу на IIS - никак. Понимаю что дело с размером класса, но как бороться? может есть какие настройки в web.config или в IIS? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 11:56 |
|
||
|
Помогите с OpenXML
|
|||
|---|---|---|---|
|
#18+
Алексей Сидоров, ... сначала вот здесь посмотрите https://issuetrak.com/knowledge_base?id=1696 ну или погуглите на предмет iis download file size limit ... но по опыту, когда я писал почтового веб-клиента, то загрузка аттачментов в броузере пошла гораздо легче, когда я посылал файл кусками в Response.BinaryWrite, в моем случае я читал в цикле из стрима построчно, конвертил в байты и посылал в браузер ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 12:33 |
|
||
|
Помогите с OpenXML
|
|||
|---|---|---|---|
|
#18+
Попробуй в респонз отдавать переменную с байтами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 12:48 |
|
||
|
Помогите с OpenXML
|
|||
|---|---|---|---|
|
#18+
carrotik, динамически созданный и загружаемый файл размером всего 40Кб, а вот класс который его генерит 5Мб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 12:52 |
|
||
|
Помогите с OpenXML
|
|||
|---|---|---|---|
|
#18+
МСУ, Делал еще вот так: Код: c# 1. 2. 3. 4. 5. 6. 7. Результат тот-же. Проблемы видимо не в отдаче байтов, а именно в генерации тяжелым классом. Можно конечно в коде делать шаблон, но это очень муторно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 12:54 |
|
||
|
Помогите с OpenXML
|
|||
|---|---|---|---|
|
#18+
Алексей Сидоров, ... может быть, есть смысл разделить процедуры генерации байтового массива и выдачи его в браузер ... например, сначала создать MemoryStream, записать в него байты, а потом скопировать этот стрим в OutputStream примерно вот так: Код: vbnet 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 14:51 |
|
||
|
Помогите с OpenXML
|
|||
|---|---|---|---|
|
#18+
Алексей Сидоров, для выгрузки данных в web.config стоит ограничение на размер 4мб. если тебе нужно больше - надо переопределить это число ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 11:38 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38332887&tid=1358261]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 257ms |
| total: | 431ms |

| 0 / 0 |
