We ran into this, and we had to adapt. In fact, in production, we found that at least 16 KB can often be returned, probably because less time is available in this environment.
Personally, I look at this as error 4.5, because the behavior of ReadEntityBody is not documented to return less than requested, so this is a change from 4.0 to 4.5.
Stream.Read , on the other hand, explicitly documents this behavior:
An implementation may return fewer bytes than requested, even if the end of the stream has not been reached.
So, if you look at it from a different angle, ReadEntityBody has the same API as Stream.Read , and you should expect from it that it will have the same semantics. In this sense, 4.5 (webengine4.dll) simply changed the implementation by executing the same contract.
IMO, in the worst case this is a terrific change, in the best case it is a documentation error. Some do not consider this either one or the other. You can decide.
I did not feel motivated to file a mistake. If it worked from day one, I probably would have thought it logical. It's just a shame that it broke in the supposed frame update 100% ago. C'est la vie ..
source share