IIS中如何变更设定uploadReadAheadSize,突破上传超过48K(49152)的方法

在IIS上传档案的限制上,通常都只要修改PHP.INI或是调整maxAllowedContentLength就可以。
但是,部份情况应用程式没有请求或没办法请求Request.BinaryRead(Request.TotalBytes)这样的命令时,
您会发现无论您的上传极限设定多大,都上传只能大约48K…

原因是IIS上传档案时,会将前 48K 读取到缓冲区中,然后将其传递给应用程序进行处理。
超过 48K 的任何内容都需要透过例如Request.BinaryRead(Request.TotalBytes)这样的命令来获取。
一般情况下应用程式均会使用这类命令来获取剩余资料,但是部分特殊情况(例如封闭式网路),
可能会无法正常传递这类获取剩余档案资料的指令。

因此,透过修改IIS的uploadReadAheadSize来直接取得档案上限容量的方式,是个不错的方法。
修改方式如下:

  1. 打开 IIS 管理器。
  2. 选择要配置的网站(也可以在全域中设定)。
  3. 选择管理器右边功能区最下方的【设定编辑器】。
  4. 将最上方【区段】的部分选择【system.webServer】的【serverRuntime】。
  5. 这时就会看到uploadReadAheadSize,在这边就可以修改这个站台的uploadReadAheadSize数值。
  6. 最下方会提示最大值(有些是2G,有些则是4G),输入您需要的数值(以bytes输入)后点击右上方的【套用】即可生效。

分享出去: