Fix form files when request buffering is enabled #64878
Open
+43
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix form files when request buffering is enabled
When request buffering is enabled, processing files in parallel throws an exception
Description
When request body buffering is enabled, form files share a single underlying buffering stream. This causes a problem because a
Streamcannot be read in parallel. When buffering is disabled, this issue does not occur, because each file is buffered separately.The most straightforward solution is to buffer files regardless of how the request body is handled. However, to avoid negatively affecting performance for requests that contain only one file, the following optimization is applied:
FormFilereferences the request body stream directly (no memory or disk allocation).Fixes #64843