2017-07-08 4 views
1

私は、フォームを送信していたファイルとを経由してWebサービスメソッドへの文字列のHTTPClientが含まれてい右次のように:応答ステータスコード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 2ギガバイトよりも大きく、それがこのメッセージと内部例外でエラーを返します設定:。
は「より2147483647のバイトをバッファリングはサポートされていませんが、\ rを\名前nParameter:値\ rを\ n actual個の値は2380364657でした" それは? そして、私はこのコードを使用してweb.configで:2GBよりも小さいサイズを持っている他のファイルを送信中

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

<requestLimits maxAllowedContentLength="3221225472"/> 


、問題はありません。
問題を解決するにはどうすればよいですか?

+0

私を助けることができるいずれかがあります???? – parsa

答えて

関連する問題