我在Azure Web应用程序上建立了一个服务。此服务将用于上载文件。IIS具有内置的安全功能,可限制文件上载大小。
为了解决这个问题,我在我的web.config中放置了以下内容。
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="80000000" />
</requestFiltering>
</security>
</system.webServer>
...
<system.web>
<httpRuntime maxRequestLength="80000" targetFramework="4.5.2" executionTimeout="9000" />
</system.web>
但是这对我来说不起作用。只要我上传一个大文件(例如50MB)它用404打到我。当我上传一个较小的文件时(10MB)它工作正常。服务是一个SOAP,通过https调用。调用不超时,异常在进行调用的5个seks内发生,我的猜测是,它上传了30MB,然后它认为它受到攻击,并中止。
我是不是漏掉了什么?
4条答案
按热度按时间2eafrhcq1#
您可以转到文件夹:
%windir%\系统32\inetsrv
运行命令:
或者如果您只想为您应用程序设置它,请运行以下命令:
您还需要在web.config中将overrideModeDefault更新为“允许”:
然后,您可以使用appcmd.exe更新您的web.config
希望this article和this article能对您有所帮助。
关于如何使用appcmd.exe,可以查看https://technet.microsoft.com/en-us/library/cc772200%28v=ws.10%29.aspx
之后,将项目部署到Azure Web应用程序,然后重试。
dbf7pr2w2#
我做了那个配置,但是我修复了我的问题,把我的ControllerBase像这样:
u4dcyp6a3#
对于classic ASP用户,除了检查web.config设置之外,还要检查以下设置:
IIS〉点击网站〉ASP〉限制属性〉最大请求实体正文限制
0tdrvxhp4#
在我的例子中,问题是因为web.config文件中httpProtocol的配置将'allowKeepAlive'设置为false。
我删除了
allowKeepAlive="false"
(使其使用默认值true),并且都处理大文件(配置'maxrequestlength'和'maxallowedcontentlength')