我在网上看了,找不到适当的解释。
我检查的链接:Difference
此链接说:
如果您要上传大文件(例如图片或文档),则 需要注意的是,您可能需要调整maxRequestLength。 然后,如果文件很大,则可能需要调整 maxAllowedContentLength。
但是两个句子的意思相同,我很困惑。
另一个链接:Difference
这是
maxRequestLength表示支持的最大文件上传大小 通过ASP.NET,maxAllowedContentLength指定最大长度 IIS支持的请求中的内容。因此,我们需要同时设置 要上传较大的maxRequestLength和maxAllowedContentLength值 文件。
我的问题是:如果我有10GB的文件上传空间。我的内容是10GB还是FileSize是10GB?我不明白上传的文件大小和内容大小之间有什么区别?
底线:如果我上传的文件大小为10GB,请用通俗易懂的方式告诉我,这两个参数是如何体现出来的。
答案 0 :(得分:4)
请求由标头和正文(在您的情况下提供文件的编码内容)组成。因此,请求长度是请求的总大小,content length是正文的字节大小(可能比您发送的数据大)。
假样品:
User-agent: Bob the builder the 4th
Authorization: hereIcome
Content-length: 4
Content-Encoding: Base64
BEEF
因此,这里的请求长度约为100,内容长度仅为4(“ BEEF”的长度),但实际数据为3个字节(FromBase64String("BEEF")
-0x04 0x41 0x05)。
如果文件很大,则可以忽略头的大小,并且maxRequestLength和maxAllowedContentLength都设置为相同的非常高的值。根据用于发送文件的编码,这些值必须是文件最大大小的某个倍数。
答案 1 :(得分:1)
这些设置在语义和用法上都不同。
maxAllowedContentLength
这是IIS特定的设置。 IIS首先将处理您发送的任何请求,而不管它是由应用程序还是由其他任何应用程序处理。因此,如果您将Web服务器想象为建筑物,那么这将成为您进入建筑物的大门。就像@Alexei提到的那样,这仅考虑内容或有效负载大小,并以字节为单位。如果您发送的有效负载大小超出此限制的请求,您将收到Http 404.13错误响应(http响应404的子代码为13。可以在this link中检查不同的IIS状态代码)。>
maxRequestLength
相比之下,maxRequestLength是特定于ASP.Net的设置,它定义输入流的缓冲阈值。因此,在建筑物示例中,这是公寓的门,因此是特定于公寓的。因此,您的要求必须同时适合建筑物的门和公寓的门。这将考虑整个请求长度,而不仅仅是负载,并且以kbs为单位。如果您的请求通过IIS设置而由于大小而无法通过此设置,则会收到Http 500错误。