青雨沐雨 2020-03-13 11:30 采纳率: 0%
浏览 477

C# HttpWebRequest上传文件开始时会出现卡顿,400KB左右,使用IIS,WEBAPI,求教各位IT大佬这是啥问题?

问题描述:

1、使用HttpWebRequest进行上传文件开始时会出现卡顿,卡顿的位置在400KB左右,无论上传文件是多大小;卡顿之后的后续上传是连续的,无问题。

2、问题现象不是每次都有,概率约为90%。

3、在卡顿时候,VS监测的内存使用会出现升高,怀疑为客户端问题。

 

问题截图:

图片说明

 

自我排查:

上传文件太大:尝试过100M以上的文件,此问题依旧,400KB左右会卡一下。

 

客户端代码:(卡顿的时候已经进入了这个循环,但是没发现啥问题)

Stream requestStream = this._webRequest.GetRequestStream();
requestStream.Write(postHeaderBytes, 0, postHeaderBytes.Length);
while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) != 0)
{
requestStream.Write(buffer, 0, bytesRead);
    m_uploadlength += bytesRead;
    progress(m_uploadlength, m_maxlength, "upload...(" + m_uploadlength / 1024 + "KB/" + m_maxlength / 1024 + "KB)");
}

服务端代码:(使用的webapi,架设在IIS上)

var m_request = HttpContext.Current.Request;
if (m_request.Files.Count > 0)
{
    HttpPostedFile file = m_request.Files[0];
    string m_filePath = Manager.Share.DataDir(m_user[0]) + @"\" + file.FileName;
    file.SaveAs(m_filePath);

}

服务端自定义的配置文件:

<system.web>
  <compilation debug="true" targetFramework="4.5.2" />
  <!--设置最大上传文件长度-->
  <httpRuntime targetFramework="4.5.2" 
        maxRequestLength="2097151"
        useFullyQualifiedRedirectUrl="true"  
        executionTimeout="6000"
        minFreeThreads="8"  
        minLocalRequestFreeThreads="4"  
        appRequestQueueLimit="100"  
        enableVersionHeader="true"  
        />
</system.web>

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

自我怀疑为IIS服务端缓存问题,或是客户端加载问题。

第一次发CSDN提问,还请各位大佬指点。[抱拳][抱拳][抱拳]

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-03-13 11:49
    关注

    上传文件开始时会出现卡顿应该和网络延迟有关,和内存增加无关。
    这么一点点内存增加(几MB,相当于0.00几GB),对于现在动辄几十GB的内存的电脑来说,如同九牛一毛。而且这也是正常现象。

    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB动图的问题
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名