什么地方可以验证文件上传大小限制?
我有IIS 7.5+的默认最大允许内容长度设置为30000000字节的ASP.NET WebAPI。什么地方可以验证文件上传大小限制?
当我在IIS上打开我的webAPI的Request Filtering
功能并检查那里的条目时,它表示30000000字节,但是当我为webAPI上传大于4MB的文件时,它会抛出异常,如下所示。
消息“超出了最大请求长度”。
堆栈跟踪:
在System.Web.HttpBufferlessInputStream。 ValidateRequestEntityLength() 在System.Web.HttpBufferlessInputStream.GetPreloadedContent(字节[]缓冲液,的Int32 &偏移的Int32 &计数) 在System.Web.HttpBufferlessInputStream.BeginRead(字节[]缓冲液,的Int32偏移的Int32计数,AsyncCallback的回调,对象状态) at System.IO.Stream.b__d(Stream stream,ReadWriteParameters args,AsyncCallback callback,Object state) at System.Threading.Tasks.TaskFactory`1.FromAsyncTrim [TInstance,TArgs](TInstance thisRef,TArgs在System.IO.Stream.BeginEndReadAsync(Byte []缓冲区,Int32偏移量,Int32计数)上的参数为 (位于System.IO.Stream.ReadAsync(Byte []缓冲区,Int32偏移量,Int32计数,CancellationToken取消llationToken) at System.Web.Http.WebHost.SeekableBufferedRequestStream.d__0.MoveNext() ---从以前位置抛出异常的堆栈跟踪结束--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task任务) 在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务task) 在System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 在System.Net.Http.HttpContentMultipartExtensions.d__8.MoveNext()
小于4MB的文件正在上传正常。
任何想法我应该寻找什么地方看看这个限制设置在哪里?
我曾尝试:
我已经检查服务器的Web.config,machine.config中以及所有应用程序的web.config,但看不到大小限制任何地方的任何条目。
我也尝试在webAPI的web.config - maxRequestLength
和maxAllowedContentLength
文件中设置条目,如其他各种要求增加文件上传大小限制的问题中所述。在IIS中这样做的请求筛选功能向我展示了新的价值,但对于大于4MB的文件,我仍然得到相同的异常。
如上所述here您应该同时设置maxRequestLength
和maxAllowedContentLength
。
您可以在网页中设置maxRequestLength
。CONFIG这种方式:
<system.web>
<httpRuntime maxRequestLength="size in kilo bytes" />
</system.web>
此设置指定极限的输入流缓冲 阈值时,在KB。此限制可用于防止例如由用户向服务器发送大文件导致的拒绝服务 攻击。
默认值为4096(4 MB)。你
也可以设置maxAllowedContentLength
在web.config中这样说:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="size in bytes" />
</requestFiltering>
</security>
</system.webServer>
指定内容的最大长度要求,以字节为单位。
的默认值是30000000
另外,还要确保你改变在正确的文件的配置。有关asp.net配置文件的更多信息,你可以看到ASP.NET Configuration File Hierarchy and Inheritance
你试过哟设置''? –
我认为这个答案可能会有所帮助:http://*.com/a/30870507/1718624 – JonFriesen
这个怎么样:http://*.com/questions/15506648/how-to-upload-a-large-file -with-asp-net-mvc4-web-api-with-progressbar – lcryder