如何在IIS 7上启用经典ASP中的大型文件上载?
最近,我不得不让一个旧的ASP应用程序在W2K8服务器上的IIS7.5中工作。几乎所有东西都工作正常,除了我似乎无法让它接受大于~200kB的上传。我确实在applicationHost.config中找到了一个设置,根据我的理解,我将最大请求大小设置为100 MB,如下所示:如何在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> <
<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的转换。此处接受的解决方案对我不起作用。首先,我的配置中没有指定元素,我不想搞乱配置文件 我也试过了,但也没有成功。最后,我遇到了这里显示的解决方案,它成功了
随着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