C# 什么地方都可以验证文件上载大小限制?

C# 什么地方都可以验证文件上载大小限制?,c#,asp.net,iis,asp.net-web-api,iis-7.5,C#,Asp.net,Iis,Asp.net Web Api,Iis 7.5,我的ASP.NET WebAPI托管在IIS 7.5+上,其默认最大允许内容长度设置为30000000字节 当我在IIS上打开我的webAPI的请求过滤功能并检查其中的条目时,它会显示30000000字节,但当我将大于4MB的文件上载到webAPI时,它会引发如下异常 消息“超出了最大请求长度。” 堆栈跟踪: 在System.Web.HttpBufferlessInputStream.上验证请求长度 位于System.Web.HttpBufferlessInputStream.GetPreloa

我的ASP.NET WebAPI托管在IIS 7.5+上,其默认最大允许内容长度设置为30000000字节

当我在IIS上打开我的webAPI的
请求过滤
功能并检查其中的条目时,它会显示30000000字节,但当我将大于4MB的文件上载到webAPI时,它会引发如下异常

消息“超出了最大请求长度。”

堆栈跟踪:

在System.Web.HttpBufferlessInputStream.上验证请求长度 位于System.Web.HttpBufferlessInputStream.GetPreloadedContent(字节[]缓冲区、Int32和偏移量、Int32和计数) 位于System.Web.HttpBufferlessInputStream.BeginRead(字节[]缓冲区,Int32偏移量,Int32计数,异步回调,对象状态) 在System.IO.Stream.b_u\d(Stream-Stream、ReadWriteParameters-args、AsyncCallback-callback、Object-state) 在System.Threading.Tasks.TaskFactory`1.FromAsyncTrim[TInstance,TArgs](TInstance thisRef,TArgs args,Func`5 beginMethod,Func`3 endMethod) 在System.IO.Stream.BeginEndarAsync(字节[]缓冲区,Int32偏移量,Int32计数) 位于System.IO.Stream.ReadAsync(字节[]缓冲区、Int32偏移量、Int32计数、CancellationToken CancellationToken) 在System.Web.Http.WebHost.SeekableBufferedRequestStream.d_u0.MoveNext()中 ---来自引发异常的上一个位置的堆栈结束跟踪--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中 在System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()中 在System.Net.Http.HttpContentMultipartExtensions.d_u8.MoveNext()中

小于4MB的文件可以正常上传。

你知道我应该找什么地方来确定这个限制在哪里吗

我尝试过的:

我已经检查了服务器的Web.config、machine.config以及应用程序的所有Web.config,但没有看到任何关于大小限制的条目

我还尝试在webAPI的web.config-
maxRequestLength
maxAllowedContentLength
文件中设置条目,如其他各种问题中所述,这些问题要求增加文件上载的大小限制。在IIS中执行此操作时,请求过滤功能向我显示了新值,但对于大于4MB的文件,我仍然得到相同的异常。

如上所述,您应该同时设置
maxRequestLength
maxAllowedContentLength

您可以通过以下方式在web.config中设置:

<system.web>
    <httpRuntime maxRequestLength="size in kilo bytes" />
</system.web>
<system.webServer>
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="size in bytes" />
        </requestFiltering>
    </security>
</system.webServer>
指定请求中内容的最大长度(以字节为单位)

默认值为30000000


还要确保您正在更改正确文件中的配置。有关asp.net配置文件的更多信息,您可以看到

您是否尝试设置了
?我认为这个答案可能会有所帮助:这样如何:是的,我尝试在配置文件中设置该选项,在设置请求筛选功能后,会显示更新的值,但是我还是遇到了同样的错误。你确定你的站点中没有其他web.config文件吗?谢谢你的回复,我已经更新了我的问题。我已经试过了,但它对我不起作用。你两个都设置好了吗?是的,我两个都设置好了。我在我的本地计算机上试过,但在主机环境下,它不起作用。我已经验证了所有web.config,但没有任何条目。我正在输入以增加webapi的web.config中的maxRequestLength。我正在使用SPA调用我的webAPI。如果SPA应用程序的web.config也需要此条目。抱歉@Reza,我仍然无法解决此问题。我的SPA文件上传中没有图片,但仍将尝试查看我是否遗漏了一些内容。此外,我的SPA与我的webAPI是分开托管的,因此不会继承配置条目。顺便说一句,你指定了两个默认限制的答案消除了我的一些困惑。