zoukankan      html  css  js  c++  java
  • mvc 上传文件 HTTP 错误 404.13

    具体的错误信息如下:

       在线上遇到了文件上传问题,在测试环境试了好久都没有发现问题到底出在哪里,以为是服务器做了各种限制,然后一点思绪都没有。最后,尝试将线上的代码包拷贝一份,在测试环境运行,刚开始的时候以为是代码逻辑的问题,把bin.,content,script和view文件夹复制到测试环境运行了一下,没有问题啊。一脸懵,到底怎么回事呢,最后实在没有办法了,死马当活马医吧(最开始,坚决否认是配置文件的问题,因为代码包自己打包的,所以,觉得不会存在问题的),比较一下线上的webconfig和线下的有什么不一样吧,解决发现了问题:

    线上的缺少如下配置(在system.webServer 节点下进行配置):

    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="1073741824"/>
      </requestFiltering>
    </security>

    然后将本地的这些代码注释掉,运行了一下,上传了一个不算大的压缩文件,果然出现了问题。不过线上由于屏蔽了错误信息,所以只返回了404错误,线下的调试。很明显的就看出问题了。

    其实,错误信息中很明确的写明了应该是哪里的问题,应该怎样操作。但是,其实线上我配置了好几个属性,但是一直不理解之间的关联和区别。正好借着这个问题好好的梳理一下:

     maxRequestLength与 maxReceivedMessageSize 和 maxAllowedContentL之间的关联和区别

        

     

     <!--配置asp.net http运行库的设置。可以在计算机,站点,应用程序和子目录级别声明

     

        允许最多的请求个数100,最长允许执行请求时间为80秒,控制用户上传文件的大小,默认是4M。useFullyQualifiedRedirectUrl客户端重定向不需要被自动转换为完全限定格式。-->

     

        <httpRuntime appRequestQueueLimit="100" executionTimeout="80" maxRequestLength="40960" useFullyQualifiedRedirectUrl="false"/>

     

     设置最大文件请求,需要在配置文件里面设置文件上传限定的两个属性值:maxAllowedContentLength,maxRequestLength 允许上传文件的长度,和请求的长度,两个大小需要设置一致,如果不一致,则以请求长度为准。

    The maximum request size in kilobytes. The default size is 4096 KB (4 MB). 默认请求长度只有4M.   设置的单位都为byte

    <system.web>
      <httpRuntime maxRequestLength="2147483647" executionTimeout="36000" delayNotificationTimeout="36000"/>
    </system.web>

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

     

  • 相关阅读:
    存储过程参数传递
    iCkeck插件
    单点登录
    SQL数据库默认实例与命名实例的区别
    IE浏览器重复提交ajax请求有缓存
    IE里Iframe的Cookie问题解决办法总结
    微信公众服务号开发
    解析url参数含有特殊字符的情况
    使用客户端控件展示增删改查操作
    修改网站web.config后出现奇怪问题找不到网页
  • 原文地址:https://www.cnblogs.com/kekelele/p/11308566.html
Copyright © 2011-2022 走看看