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

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 = ; /*单位毫秒,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);
}

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

最新文章

  1. [LeetCode] Super Ugly Number 超级丑陋数
  2. hdu3555 数位dp
  3. java 框架Nutz
  4. Eclipse用法和技巧二十二:快速调整字体大小
  5. 如何在MFC中启动其它的(.exe)可执行文件
  6. css伪元素用法大全
  7. NEO从入门到开窗(4) - NEO CLI
  8. 剑指架构师系列-spring boot的logback日志记录
  9. AQS框架源码分析-AbstractQueuedSynchronizer
  10. idea 2017破解的三种方式
  11. [leetcode]47. Permutations全排列(给定序列有重复元素)
  12. Mysql 5.7 单机单实例
  13. codeforces 761D - Dasha and Very Difficult Problem
  14. 如何在UltraEdit中高亮显示PB代码
  15. js 下关于json的销毁和添加
  16. 《Android源代码设计模式解析与实战》读书笔记(二十)
  17. conn
  18. mybatis 面试
  19. mysql事务隔离
  20. angularjs ng-app=&quot;angular_app&quot; ng-controller=&quot;angular_controller&quot; ng-init=&quot;findAll()&quot;

热门文章

  1. Project 7:自然数的拆分
  2. js page click
  3. linux下文件和目录
  4. PS小实验-去除水印
  5. 转:【Java集合源码剖析】TreeMap源码剖析
  6. 团队作业8——第二次项目冲刺(Beta阶段)--5.25 5th day
  7. JAVA基础第一组(前5道题)
  8. 201521123111《Java程序设计》第5周学习总结
  9. 201521123076 《Java程序设计》第11周学习总结
  10. 201521123039 《java程序设计》第十一周学习总结