iis 最大请求长度+最大允许内容长度+HTTPS不工作

kxeu7u2r  于 2022-11-12  发布在  其他
关注(0)|答案(4)|浏览(307)

我在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,然后它认为它受到攻击,并中止。
我是不是漏掉了什么?

2eafrhcq

2eafrhcq1#

您可以转到文件夹:
%windir%\系统32\inetsrv
运行命令:

appcmd set config -section:requestFiltering -requestLimits.maxAllowedContentLength:80000000

或者如果您只想为您应用程序设置它,请运行以下命令:

appcmd set config "Default Web Site/" -section:requestFiltering -requestLimits.maxAllowedContentLength:80000000

您还需要在web.config中将overrideModeDefault更新为“允许”:

<section name="requestFiltering" overrideModeDefault="Allow" />

然后,您可以使用appcmd.exe更新您的web.config
希望this articlethis article能对您有所帮助。
关于如何使用appcmd.exe,可以查看https://technet.microsoft.com/en-us/library/cc772200%28v=ws.10%29.aspx
之后,将项目部署到Azure Web应用程序,然后重试。

dbf7pr2w

dbf7pr2w2#

我做了那个配置,但是我修复了我的问题,把我的ControllerBase像这样:

protected override void OnResultExecuting(ResultExecutingContext filterContext)
    {

        base.OnResultExecuting(filterContext);

        if(filterContext.Result.GetType().Name == "JsonResult")
            filterContext.Result.GetType().GetProperty("MaxJsonLength").SetValue(filterContext.Result, int.MaxValue);
    }
u4dcyp6a

u4dcyp6a3#

对于classic ASP用户,除了检查web.config设置之外,还要检查以下设置:
IIS〉点击网站〉ASP〉限制属性〉最大请求实体正文限制

0tdrvxhp

0tdrvxhp4#

在我的例子中,问题是因为web.config文件中httpProtocol的配置将'allowKeepAlive'设置为false。

<httpProtocol allowKeepAlive="false">

我删除了allowKeepAlive="false"(使其使用默认值true),并且都处理大文件(配置'maxrequestlength'和'maxallowedcontentlength')

相关问题