最近我不得不在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
Googling指出如上所述增加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>
您可以在IIS7管理器中的ASP功能的属性网格中的“限制属性”类别下进行配置。或者,您可以使用命令行:
appcmd set config /section:asp /limits.maxRequestEntityAllowed:104857600