最近,我不得不在W2K8服务器上的IIS 7.5中获得一个旧的ASP应用程序。几乎所有东西都可以正常工作,除了我似乎无法接受大于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

像上面我所做的那样,谷歌搜索指向增加maxAllowedContentLength。所以我没有什么主意,但是我相信聪明的stackoverflow人群可以在比我写这个问题花费的时间更少的时间内解决这个问题。

最佳答案

maxAllowedContentLength控制允许在响应中发送多少数据。但是,您想控制请求中可以接受的数量。这由配置文件的maxRequestEntityAllowed部分中limits元素的asp属性处理。一个例子可能看起来像:

<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>

您可以在IIS7管理器中的ASP功能的属性网格中的“限制属性”类别下进行配置。或者,您可以使用命令行:
appcmd set config /section:asp /limits.maxRequestEntityAllowed:104857600

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

10-07 19:46
查看更多