gpt4 book ai didi

c# - 使用 Asp.Net MVC 和 IIS 上传大于 3GB 的文件

转载 作者:行者123 更新时间:2023-11-30 12:23:07 24 4
gpt4 key购买 nike

我的 MVC 应用程序中有一个 HTTP PUT Web API 方法,它从客户端接收文件并将其放入服务器存储。

由于文件可能很大,我没有将文件流式传输到内存中以避免内存越界异常,因此我使用 MultipartFormDataStreamProvider 将其加载到临时文件夹中,然后移动稍后到达最终目的地。

除无法上传大于 2097148 KB (2.097GB) 的文件外,一切正常。一旦我提供的文件大于该文件,它就会开始将其流式传输到 Temp 文件夹中,然后在文件大小达到 2097148 KB 时停止。

我的 web.config 文件中有以下属性:

ma​​xRequestLength="5097151",

requestLengthDiskThreshold="50971",

ma​​xAllowedContentLength="4242880000".

同样在 IIS 中,我将允许的最大内容长度(字节)设置为 4242880000 KB。

是否还有其他地方可能导致这种情况发生?

最佳答案

更新

似乎即使在带有 .NET 4.6.1 的 IIS 10 下,请求也被拒绝(400 错误请求),即使所有限制都设置为允许它。

进一步挖掘似乎this has been rejected在微软。


在 .Net 4.0 及更早版本中,ASP.NET 有 2Gb 的限制,即 was fixed in .Net 4.5 .但是,此修复有点意义,因为 IIS 本身不支持超过 2Gb 的文件上传。

要将超过 2Gb 的文件上传到 IIS 托管的服务器,唯一的方法是将其分成几 block ,然后一 block 一 block 地上传。以下是可以将文件分成几段上传的客户端:

  1. IT Hit Ajax File Browser
  2. Sample WebDAV Browser

请注意,这些客户端需要您的服务器支持带有 Range header 的 PUT。

另一个解决方案是创建一个基于 HttpListener 的服务器。与 IIS 相比,HttpListener 的功能要少得多,但它没有任何上传限制。


source

关于c# - 使用 Asp.Net MVC 和 IIS 上传大于 3GB 的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38195072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com