ASP.Net Web 服务:防止 .tmp 和 .post 文件用于大型 POST

ASP.Net Web Service: Prevent .tmp and .post files for large-ish POSTs

我有一个托管在 IIS 8.5 中的 c# .Net 4.5 SOAP Web 服务。随着这项服务的成功,我看到它不断地将 .tmp 和 .post 文件写入此目录 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\webservices_itcrateenginec7c6f10cbc7b94\uploads.

我在 Interwebs 上看到了详细说明如何通过 web.config 中的标签的 tempDirectory 属性将临时目录移动到其他地方的建议。
我还看到了一条一般性建议,即上传大小约为 250k 时 ASP.Net 将写入这些 .tmp 和 .post 文件,但我真正想知道的是如何指定asp.net 缓冲区通过 .tmp 和 .post 文件将数据上传到磁盘的大小?
我们全天都有很多 POST 到这个网络服务,每小时数千个,大小从 1k-1mb 不等。这些机器有足够的内存,所以如果我可以更改 .Net 用于缓冲到磁盘的阈值,我希望物理磁盘上的负载更轻,因为我认为不必要的 IO。
有人知道如何设置 ASP.Net 将用来确定是否创建这些临时 .post 和 .tmp 文件的上传大小阈值吗?谢谢你的时间。

Asp.net 文件上传使用 HttpPostedFile to save the file from the stream.From the msdn 文档

Files are uploaded in MIME multipart/form-data format. By default, all requests, including form fields and uploaded files, larger than 256 KB are buffered to disk, rather than held in server memory.

也关于缓冲区

The amount of data that is buffered in server memory for a request, which includes file uploads, can be specified by accessing the RequestLengthDiskThreshold property or by setting the requestLengthDiskThreshold attribute of the httpRuntime Element (ASP.NET Settings Schema) element within the Machine.config or Web.config file.

通过调整 MaxRequestLengthRequestLengthDiskThreshold 属性,您可以微调服务器的性能

因此您可以在 web.config 中设置更高的设置,例如1024 KB

<httpRuntime requestLengthDiskThreshold = "1024" 

指定输入流缓冲阈值的限制,以千字节为单位。此外,此值不应超过 maxRequestLength 属性。