是否有一种方法可以使用System.Net.Http.HttpClient将大文件推送到远程服务器?

本文关键字:文件 HttpClient 服务器 Http Net 一种 System 可以使 方法 是否 | 更新日期: 2023-09-27 18:07:00

我正在尝试使用System.Net.Http.HttpClient:

将一个50 MB的文件推送到远程服务器
private async void Transfer_Product_Upgrade_Package(object sender, RoutedEventArgs e)
{
    await UploadFileAsync();
}
async Task UploadFileAsync()
{
    string filename = @"C:'AccountView'AccountViewPublish'ProductPackage.zip";
    Uri uri = new Uri("http://localhost:3748/api/UploadProductPackage/5");
    using (var stream = File.OpenRead(filename))
    {
        var client = new HttpClient();
        var response = await client.PostAsync(uri, new StreamContent(stream));
        response.EnsureSuccessStatusCode();
    }
}

我甚至没有到达目标服务器就得到了这个响应:

响应状态码不成功:413(请求实体太大)。

一个较小的文件正在使用相同的代码传输。

有没有办法处理更大的文件?

是否有一种方法可以使用System.Net.Http.HttpClient将大文件推送到远程服务器?

IIS 7默认最大上传文件大小约为28mb。对于更大的文件大小,您需要使用WebConfig配置IIS 7以允许更大的文件大小:

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="2147483648" />
    </requestFiltering>
  </security>
</system.webServer>

, ASP。NET运行时有额外的限制。你可以在这里修改:

<system.web>
  <httpRuntime maxRequestLength="2097152" />
</system.web>

点击此链接获取更多信息