最近,我不得不在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
Google上的搜索指向增加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攻击的窗口,在该窗口中,攻击者会将大量内容发送到服务器,因此不要试图将其扩展到超出您真正需要的范围。
在Windows 2008上-进入管理工具-服务器管理器-展开角色-展开Web服务器-单击IIS-并查找您要更改文件大小限制的Web实例,然后进入选项“ ASP”展开“限制属性”和您需要更改的属性是“最大请求实体正文限制”。文件大小始终以字节为单位,因此请使用任何在线计算器来计算字节到KB或MB的转换。
首先@AnthonyWJones answer很有帮助,但没有解决我的问题,实际上,它有点不准确,因此我正在编写此文件。
IIS 6中的大量上载是轻而易举的事,您需要担心一个配置值
AspMaxRequestEntityAllowed
AspMaxRequestEntityAllowed属性指定ASP请求的实体主体中允许的最大字节数。如果存在Content-Length标头,并且指定的数据量大于AspMaxRequestEntityAllowed的值,则IIS返回403错误响应。此属性在功能上与MaxRequestEntityAllowed相关,但特定于ASP请求。在常规的万维网发布服务(WWW服务)级别,您可以将MaxRequestEntityAllowed属性设置为1 MB,但是,如果您知道特定的ASP,则可以选择将[[AspMaxRequestEntityAllowed设置为较低的值。应用程序处理少量数据。
现在您需要正确配置两个设置,大文件上传才能按预期工作,并且它们都位于配置的不同区域。
maxRequestEntityAllowed
<configuration>
<system.webServer>
<asp>
<limits maxRequestEntityAllowed="200000" />
</asp>
<system.webServer>
<configuration>
属性指定ASP请求的实体主体中允许的最大字节数。如果存在Content-Length标头,并且指定的数据量大于maxRequestEntityAllowed的值,则IIS返回HTTP 403错误响应。
重要:
如从下面的默认设置中看到的那样,配置上述设置将工作到一定程度,但是一旦达到该默认设置,无论maxRequestEntityAllowed
设置为什么,服务器都会响应HTTP 404 Not Found错误响应。一开始这让我感到困惑,因为我认为返回代码404错误响应的一定是我的代码。 maxAllowedContentLength
<configuration>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="30000000" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
(之前已经说过)。无论将此设置非常重要,因为它定义了IIS请求(而不是像以前的配置值那样的ASP请求)中的最大字节数。指定请求中内容的最大长度,以字节为单位。默认值为30000000,大约为28.6MB。
与响应的内容长度无关
maxRequestEntityAllowed
(特定于asp-classic的设置)设置为什么,如果未设置maxAllowedContentLength
或尝试上传更多内容,则默认设置为28 MB(大约),您都会收到HTTP 404错误回应。链接<limits>
<limits>
我也尝试过Request Limits <requestLimits>
<requestLimits>
,但也没有用。最后,我遇到了此处显示的解决方案,它可以正常工作。
无论您选择哪个选项卡,在主窗口中单击鼠标右键都将显示一个弹出上下文菜单。在菜单中选择“编辑功能设置”。
打开“限制属性”图标,然后将“最大请求实体限制”中的值更改为大于200000(200kb)的值。 2000000将是2mb,20000000将是20mb。根据您的需要设置并应用。就是这样!
ENJOY ..