|
|
|
GetPreloadedEntityBody() возвращает null
|
|||
|---|---|---|---|
|
#18+
msdnМетод GetPreloadedEntityBody() возвращает часть считанного ранее текста HTTP-запроса. Где можно найти описание этой штуковины? Какую часть, кем эта часть была считана ранее, почему этот кто-то считал часть запроса, зачем он это сделал и т.д. Вопрос в том, что у меня и у многих других этот метод всегда возвращает null, но в примерах кода его часто используют даже не задумываясь о том, что он может быть null (а может тоже не знают что он делает), как результат - вываливается ошибка, далее авторы кода непоняв почему так происходит (у них то работает), предлагают дописывать проверку на null. Есть подозрение, что это зависит от версии фреймворка, ОС или IIS. Я у себя GetPreloadedEntityBody() выкинул, так как пока не знаю зачем он, но есть опасение, что при заливке на хостинг, он там заработает и чё-нить покажет, поэтому хочется выяснить причины когда метод вовращает назовём это "тело считанного кем-то запроса", а когда null. Вообще с данной проблемой я не одинок - http://forums.asp.net/t/1567380.aspx/1 http://www.pcreview.co.uk/forums/getpreloadedentitybody-does-not-work-asp-net-2-0-a-t2449292.html но ответа на вопрос там нет, типа метод работает с IIS 7 .net 1.1, IIS 6 .net 2.0 и даже что-то там возвращает, но не работает в IIS 7 net 2.0 и выше, у меня IIS 7.5 net 4, таже самая байда. И режимы пула менял - классический/пипелине и версии .net и файлы по сети грузил большие/маленькие, ничего не меняется. Может выкинуть GetPreloadedEntityBody() и всё что с ним связано - IsEntireEntityBodyIsPreloaded() и прочее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2012, 05:10:29 |
|
||
|
GetPreloadedEntityBody() возвращает null
|
|||
|---|---|---|---|
|
#18+
Некоторые особенности, выявленные при стандартном аплоаде файлов. Файл целиком грузится на диск с системой (на тот, где установлена винда, IIS). Причём на диск, не в ОЗУ, то есть всё нормально, пугливые возгласы америкосов с форума asp.net и топика 2008-го года не оправдались (ну тогда и IIS с .net старее был, может там в озу и грузилось). После того, как он загрузился, он вырезается (сжирая всё доступное ОЗУ согласно своему весу) и вставляется в папку предназаначения его загрузки (та, которая указана в HttpPostedFile.SaveAs("путь")). Из минусов - сохраняется не на тот диск (место кончится на системном диске к примеру при множественном аплоаде больших файлов многими юзерами и получим статус 500), при копировании между дисками/серверами отжирает ОЗУ и расходует ресурсы сервера (тот же cpu), докачка и прогрессбар(хотя прогрессбар тут лишний) невозможны. Собственно из-за подобных причин и сделал свой загрузчик. От всех вышеперечисленных минусов удалось избавиться. В современном мире докачка файлов и прогрессбар доступны на клиенте в html5, да и во flash наверное тоже, то есть заниматься бредом с показом прогресса загрузки файла с сервера вряд ли придётся, что уже хорошо. Но займёмся пока серверной реализацией, все пихают GetPreloadedEntityBody(), ради которого и был создан этот топик. Но оно жеж без него прекрасно работает, зачем нужен этот метод, пока остаётся загадкой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2012, 13:42:37 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=137&tid=1359892]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
78ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 378ms |

| 0 / 0 |
