2014-06-05 94 views
2

我试图用System.Net.Http.HttpClient到50 MB的文件推送到远程服务器的远程服务器:有没有办法到大文件推送到使用System.Net.Http.HttpClient

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(请求实体太大)。

使用相同的确切代码正在传输较小的文件就好了。

有没有办法处理大文件?

回答

3

默认最大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> 

请检查此link了解更多信息。

相关问题