This has definitely moved beyond the realm of the original post and into the world of bugs that need fixing, and I'm afraid I don't have much to add in that regard. However, since I've been struggling with this for a few hours, I'll offer what I discovered for what it's worth:
1) I am new to DNN, using the "official" (ie not source code) version of 4.0.3 and it's as clean as clean can be.
2) This is only happening to me on the one installation where memory is an issue: the installation hosted by an ISP. My other installations are a dev server and a standalone server that's underutilized. Neither has had any problems with this.
3) I have modified my web.config file as suggested; the httpRuntime tag now reads
<httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="2097151" requestLengthDiskThreshold="2097151" />
note: Others have recommended larger numbers. However,
Microsoft says:
"The RequestLengthDiskThreshold property specifies the input-stream buffering threshold limit in number of bytes. Its value should not exceed the MaxRequestLength property value."and when I tried to increase MaxRequestLength to match, I got this configuration error:
Parser Error Message: The value for the property 'maxRequestLength' is
not valid. The error is: The value must be inside the range 0-2097151.
Hence, using 2097151.
4) For those of you trying to get around this, I recommend overwriting web.config
immediately before uploading. This seems to work for me. Of course, it doesn't help if you're a user trying to upload a file.
Hope this helps add knowledge and eventually get this thing fixed.