Файл. Ошибка причин WriteAllBytes “Недостаточные системные ресурсы существует для завершения требуемого сервиса”

Это действительно зависит от компилятора. Я был бы удивлен, если бы большинство современных компиляторов Си не генерировали практически идентичный код для конкретного сценария, который вы описываете.

Получите ваш компилятор для генерации списка сборки для каждого из этих сценариев, и вы можете ответить на свой вопрос (для вашего конкретного компилятора:)).

И даже если они различаются , разница в производительности, вероятно, будет несущественной в практических приложениях.

9
задан CraftyFella 15 June 2009 в 10:07
поделиться

4 ответа

Я не понимаю, что это могло быть связано с maxRequestLength. Код находится в середине FileStream.Write, поэтому вопрос о получении данных уже давно не возникает. Подтвердите это, посмотрев на Data.Length в отладчике.

Почему у вас WebMethod (правда)? Попробуйте просто [WebMethod] и посмотрите, что произойдет.

1
ответ дан 4 December 2019 в 23:07
поделиться

maxRequestLength 409600 ограничит размер данных примерно до 400 КБ, поэтому файл размером 2 МБ будет значительно превышать

Ребята из GuidanceShare хорошо обсуждают подобную ситуацию. Вкратце:

  • Если необходимо, увеличьте maxRequestLength, как вы уже обсуждали.
  • Рассмотрите возможность реализации потоковой передачи. В .NET 1.1 используйте класс, реализующий IList в качестве объекта передачи данных, и установите HttpContext.Current.Response.BufferOutput = false; в коде на стороне клиента. .NET будет автоматически отправлять элементы списка один за другим, поэтому каждый элемент списка может быть буфером размером 1 Кбайт.
  • Если вы можете использовать .NET 2 или выше, рассмотрите WCF.

Что ж, тогда это отвлекающий маневр! Спасибо за комментарии, кажется, я ошибаюсь.

0
ответ дан 4 December 2019 в 23:07
поделиться

WriteAllBytes загружает весь файл в ОЗУ перед записью его на диск. У вас заканчивается память.

0
ответ дан 4 December 2019 в 23:07
поделиться

I know you are not reaching this size of file but also be aware that File.WriteAllBytes has a limit of 64mb when writing to network paths - see this connect issue

3
ответ дан 4 December 2019 в 23:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: