zoukankan      html  css  js  c++  java
  • WebService文件上传相关配置(404.13、超出限制、超时)

    最近在做文件上传的功能,遇到一些问题,记录如下,以备以后使用。

    1.HTTP Error 404.13 - Not Found,请求筛选模块被配置为拒绝超过请求内容长度的请求。

    IIS默认允许请求长度为4M,对于图片文件来说足够使用,但对于附件来说,这个限制就明显不够用了,需要在配置文件中加入一些设置。

    <configuration>
      <system.web>
        <!--最大请求长度,单位byte,当前限制为1G,超时时间单位为秒,当前时间为1小时-->
        <httpRuntime requestValidationMode="2.0" maxRequestLength="1073741824" executionTimeout="3600"/>
      </system.web>  
      
      <system.webServer>
        <security>
          <requestFiltering>
            <!--最大允许请求长度,单位byte,当前限制为1G-->
            <requestLimits maxAllowedContentLength="1073741824"></requestLimits>
          </requestFiltering>
        </security>
      </system.webServer>
    </configuration>

    2.ASP.NET超时时间已到。

    asp.net在默认情况下,超时时间为90秒,如果90秒内该请求还未有完成,就会返回超时的错误。

    要在配置文件中设置超时时间即可,参考上面httpRuntime节点中executionTimeout的设置。

    3.设置IIS配置(与设置配置文件等效)

    *打开IIS,选择需要操作的站点,双击右侧ASP,找到限制属性,设置脚本超时为60分钟

    *相应缓冲限制和最大请求实体主体限制都设置为1G(单位byte):1073741824,点击右侧应用

    *选择站点,双击右侧配置编辑器,找到system.web节点下的httpRuntime,设置maxRequestLength为1073741824,应用

    *再选择system.webServer>security>requestFiltering,找到requestLimits,设置maxAllowedContentLength值为1073741824,应用

    4.由于本次上传采用的是WebService的方式,上传完成后提示操作超时,于是给ws设置了超时时间

    WebService ws = new WebService();
    ws.Timeout = 3600000; /*单位毫秒,1小时*/

    5.使用IE和Chrome浏览器测试,获取上传文件名时遇到一个问题

    以前获取文件名直接使用files[0],用IE浏览器调试时发现这样获取到的名字带有F://xxx/这样的盘符路径,所以采用如下方式获取文件名。

    HttpFileCollection files = context.Request.Files;
    if (files.Count > 0)
    {
        /*获取真实文件名,files[0].FileName这种方法在IE浏览器中上传会带有F://路径*/
        string filename = System.IO.Path.GetFileName(files[0].FileName);
    }

    以上为本次上传功能中遇到的问题,以后上传相关的问题还会继续记录在本文中,如有错误之处,请大家指正。

  • 相关阅读:
    CPU被挖矿,Redis竟是内鬼!
    图解四种 IO 模型
    用户态和内核态的区别是啥
    关于 RocketMQ ClientID 相同引发的消息堆积的问题
    玩转 ByteBuffer
    RocketMQ Consumer 启动时都干了些啥?
    网络协议之:基于UDP的高速数据传输协议UDT
    dart系列之:安全看我,dart中的安全特性null safety
    JetBrains又出神器啦!Fleet,体验飞一般的感觉
    网络协议之:还在用HTTP代理?弱爆了!快试试SOCKS5
  • 原文地址:https://www.cnblogs.com/Jackie-sky/p/5944801.html
Copyright © 2011-2022 走看看