【发布时间】:2021-10-03 16:18:50
【问题描述】:
我正在尝试使用 HttpClient 上传多达 2GB 的数据。 数据通过请求正文发送到读取它的 aspx 页面(可怕,我知道,但我无法更改。)
数据被放置在 MultipartFormDataContent 中并像这样发布:
var apiRequest = new MultipartFormDataContent();
apiRequest.Add(new StreamContent(file), fileName, fileName);
apiRequest.Headers.ContentDisposition =
new ContentDispositionHeaderValue("form-data") { Name = fileName, FileName = fileName };
HttpClient client = new HttpClient();
client.Timeout = TimeSpan.FromMinutes(30);
HttpResponseMessage response = null;
try
{
response = client.PostAsync(apiEndPoint, form).Result;
response.EnsureSuccessStatusCode();
string responseBody = response.Content.ReadAsStringAsync().Result;
}
catch (HttpRequestException e)
{
log.LogError($"logging here");
}
我尝试过的事情:
-HttpClient http 版本 1.0 代替默认
-HttpClient MaxRequestContentBufferSize
-web.config maxAllowedContentLength
-web.config AspMaxRequestEntityAllowed
-web.config maxRequestLength
目前,文件已正确添加到 httpClient,但我无法将它们发布到 Web 应用程序。我通过了高达 900MB 的内容,但任何超过此内容的内容都会简单地重定向到主页,并且我会从响应正文中的 Web 应用程序获取 HTML。
提前致谢!
【问题讨论】:
-
所以当它达到 900 MB 或更大时,页面只是重定向到主页但在浏览器控制台中不显示任何信息?或者您的自定义日志错误中没有任何内容?您是否尝试在 MultipartFormDataContent 中设置 multipart/form-data?
-
没错,它在没有信息和自定义日志的情况下重定向到主页。我刚刚尝试设置 multipart/form-data 但无济于事。
标签: c# asp.net iis-8 windows-server-2012-r2 .net-4.7.2