如何在IIS 7上启用经典ASP中的大型文件上载?

如何在IIS 7上启用经典ASP中的大型文件上载?,iis,iis-7,asp-classic,Iis,Iis 7,Asp Classic,最近,我不得不让一个旧的ASP应用程序在W2K8服务器上的IIS7.5中工作。几乎所有东西都工作正常,除了我似乎无法让它接受大于~200kB的上传。我确实在applicationHost.config中找到了一个设置,根据我的理解,我将最大请求大小设置为100 MB,如下所示: <location path="TheNameOfMySite"> <system.webServer> <security> <

最近,我不得不让一个旧的ASP应用程序在W2K8服务器上的IIS7.5中工作。几乎所有东西都工作正常,除了我似乎无法让它接受大于~200kB的上传。我确实在applicationHost.config中找到了一个设置,根据我的理解,我将最大请求大小设置为100 MB,如下所示:

<location path="TheNameOfMySite">
    <system.webServer>
        <security>
            <requestFiltering>
                <requestLimits maxAllowedContentLength="104857600" />
            </requestFiltering>
        </security>
    </system.webServer>
</location>

不幸的是,这似乎没有任何作用,它仍然拒绝接受任何大于200 KB的文件,并且在日志文件中给出以下错误消息:

ASP_0104_:_80004005|Operation_not_Allowed ASP_0104_:_80004005 |不允许操作
谷歌搜索指向增加
maxAllowedContentLength
,正如我在上面所做的那样。所以我的想法很新鲜,但我相信聪明的stackoverflow团队能够在比我写这个问题所用的时间更短的时间内解决这个问题

maxAllowedContentLength控制响应中允许发送的数据量。但是,您希望控制在请求中可以接受多少。这由配置文件的
asp
部分中
limits
元素的
maxRequestEntityAllowed
属性处理。例如:-

<system.webServer>
  <asp>
     <cache diskTemplateCacheDirectory="%SystemDrive%\inetpub\temp\ASP Compiled Templates" />
     <limits scriptTimeout="00:02:00"
        queueConnectionTestTime="00:00:05"
        requestQueueMax="1000"
        maxRequestEntityAllowed="104857600"
        />
  </asp>

请注意,扩展此值会增加DOS攻击的窗口,在该窗口中,攻击者会向服务器发送大量内容,因此不要试图将其扩展到您真正需要的范围之外。

对于无法从CMD执行appcmd命令的用户,您需要将路径更改为C:\windows\system32\inetsrv,因为该命令位于该文件夹中。

在windows 2008上-进入管理工具-服务器管理器-展开角色-展开web服务器-单击IIS-并查找要更改其文件大小限制的web实例,然后进入选项“ASP”展开“限制属性”您需要更改的属性是“最大请求实体体限制”。文件大小始终以字节为单位,因此请使用任何联机计算器计算字节到KB或MB的转换。

此处接受的解决方案对我不起作用。首先,我的配置中没有指定元素,我不想搞乱配置文件

我也试过了,但也没有成功。最后,我遇到了这里显示的解决方案,它成功了

  • 打开IIS 7管理单元

  • 选择要启用以接受大文件上载的网站

  • 在主窗口中双击“请求筛选”

  • 打开窗口后,您可能会在顶部看到选项卡列表,例如:文件扩展名、规则、隐藏段等

    无论选择哪个选项卡,在主窗口中单击鼠标右键可显示弹出式关联菜单。 在菜单中选择“编辑特征设置”

  • 在弹出的表单上,修改“允许的最大内容长度(字节)”

  • First off非常有用,但没有解决我的问题,事实上它有点不准确,因此我写这篇文章

    IIS 6中的大量上传是一个棘手的问题,您需要担心一个配置值

    AspMaxRequestEntityAllowed

    属性指定ASP请求的实体正文中允许的最大字节数。如果存在内容长度标头,并且指定的数据量大于AspMaxRequestEntityAllowed的值,IIS将返回403错误响应。此属性在功能上与相关>,但特定于ASP请求。而您可以在通用万维网发布服务(WWW服务)中将MaxRequestEntityAllowed属性设置为1 MB级别,如果您知道特定ASP应用程序处理的数据量较小,则可以选择将AspMaxRequestEntityAllowed设置为较低的值


    随着iis7的引入和它的新的基于XML的分层配置系统(使用*.config文件)的出现,一切都变得有点复杂了

    现在有两个设置需要正确配置,然后大文件上传才能正常工作,它们都位于配置的不同区域

    maxRequestEntityAllowed

    
    属性指定ASP请求的实体正文中允许的最大字节数。如果存在内容长度标头,并且指定的数据量大于maxRequestEntityAllowed的值,IIS将返回HTTP 403错误响应

    重要提示: 配置上述设置将达到以下默认值,但一旦达到该默认值,无论
    maxRequestEntityAllowed
    设置为什么,服务器都将使用HTTP 404 Not Found错误响应进行响应。这让我开始感到困惑,因为我认为返回404错误的一定是我的代码或回应

    maxAllowedContentLength

    
    
    指定请求中内容的最大长度(以字节为单位)。默认值为30000000,约为28.6MB

    此设置非常重要,因为它定义了IIS请求中的最大字节数(而不是像以前的配置值那样的ASP请求)它与响应的内容长度无关(如前所述)。无论什么
    maxRequestEntityAllowed
    (这是一个特定的设置)设置为,如果未设置
    maxAllowedContentLength
    ,或者您尝试上载超过默认值28 MB(约)的内容,您将收到HTTP 404错误响应

    链接

    进入IIS,选择您的站点并展开它,然后单击右面板中的ASP图标

    打开限制属性
    appcmd set config /section:asp /limits.maxRequestEntityAllowed:104857600