Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用ASP.NET在IIS上查找POST的大小限制?_Asp.net_Iis_Iis 7 - Fatal编程技术网

如何使用ASP.NET在IIS上查找POST的大小限制?

如何使用ASP.NET在IIS上查找POST的大小限制?,asp.net,iis,iis-7,Asp.net,Iis,Iis 7,我有一个web服务,最终用户将上传可能非常大的ZIP档案(一个测试文件超过200MB)。我想主动处理超大文件,优雅地处理大小有限的上传失败 由于web应用程序将部署在客户的机器上,因此我无法轻松确保配置匹配任何固定大小。我已经记录了如何使用appcmd命令为他们设置requestLimits.maxAllowedContentLength值,使其超过30MB的默认值 但我想在web应用程序中处理它;我希望有两件事: 要在启动文件上载的页面上显示当前限制,请执行以下操作: 每个文件上载限制为15M

我有一个web服务,最终用户将上传可能非常大的ZIP档案(一个测试文件超过200MB)。我想主动处理超大文件,优雅地处理大小有限的上传失败

由于web应用程序将部署在客户的机器上,因此我无法轻松确保配置匹配任何固定大小。我已经记录了如何使用appcmd命令为他们设置requestLimits.maxAllowedContentLength值,使其超过30MB的默认值

但我想在web应用程序中处理它;我希望有两件事:

  • 要在启动文件上载的页面上显示当前限制,请执行以下操作:

    每个文件上载限制为15MB如果您的存档文件较大,(等等,等等)

  • 在超出该大小时给出有意义的错误。目前,发送数据需要很长时间,然后我看到一个误导性的404页面

  • 有什么想法吗

    [编辑]


    我找到了上面的文章——虽然我可以截获错误,但我一直在浏览器中对Request.Redirect()Context.RewritePath()进行连接重置,所以它实际上并不比404好。嗯,实际上这是VS2008的调试服务器,而不是IIS。

    要获取masxAllowed内容,您可以使用此

    protected int GetMaxUploadSize()
    {
        System.Web.Configuration.HttpRuntimeSection httpRuntimeSec = (System.Web.Configuration.HttpRuntimeSection)ConfigurationManager.GetSection("system.web/httpRuntime");  
        if (httpRuntimeSec != null)  
        {  
           return httpRuntimeSec.MaxRequestLength;  
        }  
        else
        {
           return 0;
        }
    }
    
    还要将此添加到web.config:

    <system.webServer>
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="1000000" />
        </requestFiltering>
    </security>
    
    
    


    对于第二个问题,我建议您使用客户端应用程序,以便在上传之前验证文件大小,其中一个选项可以是silverlight

    谢谢,但这是“web.config”设置,除非他们更改,否则我可以控制该设置(我已将其设置为128MB)。我正在寻找IIS设置,默认值为30MB。我了解到,为了避免IIS阻塞,您可以将其添加到您的web.cofig(没有尝试过)中。谢谢,但正如我提到的,我已经将此设置为~128MB。有一个默认为30MB的IIS限制,这就是我想要阅读的内容。