2017-07-08 16 views
1

我送一个表单包含一个文件并通过的HttpClient如右下一个字符串转换为Web服务方法:响应状态代码400:因为大尺寸发布数据的错误请求(HttpClient的)

using (FileStream fs = File.Open(FileFullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) 
     { 
      using (var client = new HttpClient(new HttpClientHandler { UseProxy = false, Proxy = null })) 
      { 
       using (var formData = new MultipartFormDataContent()) 
       { 
        client.Timeout = TimeSpan.FromMilliseconds(Timeout.Infinite); 
        //client.MaxResponseContentBufferSize = fs.Length; 

        HttpContent TokenContent = new StringContent(Token); 
        HttpContent fileStreamContent = new StreamContent(fs); 

        formData.Add(TokenContent, "Token"); 
        formData.Add(fileStreamContent, Key, currentFile); 

        var response = await client.PostAsync(WebServiceOfServer, formData).ConfigureAwait(false); 

        // equivalent of pressing the submit button on the form 
        if (!response.IsSuccessStatusCode) 
        { 
         result = null; 
        } 
        else 
        { 
         result = response.Content.ReadAsStreamAsync().Result; 
         return true; 
        } 
       } 
      } 
     } 

但是,在发送大小超过2GB的文件时,响应状态代码为与BadRequest短语原因。 我设置client.MaxResponseContentBufferSize=fs.Lengthfs.Length大于2GB,它在内部异常与此消息返回错误:
“进行缓冲超过2147483647个字节,不支持\ r \ n参数名:价值\ r \ nActual值为2380364657 “。 那? 并在web.config中我用这个代码:

<httpRuntime maxRequestLength="3145728" requestLengthDiskThreshold="3145728" targetFramework="4.5.1" requestValidationMode="2.0" executionTimeout="999999"/> 

<requestLimits maxAllowedContentLength="3221225472"/> 


在发送具有大于2GB尺寸的其他文件,也没有问题。
我该如何解决我的问题?

+0

是否有任何人能帮助我???? – parsa

回答

相关问题