使用Web API进行大文件上载

时间:2014-03-04 22:03:45

标签: c# winforms asp.net-web-api

我有一个winforms应用程序,它将多部分文件发送到webAPI。 它适用于办公室中的服务器。但是当服务器在UTAH时,同样不起作用。对于小文件,没关系。但不适用于大文件。

以下是我们用于上传的代码:

if (!Request.Content.IsMimeMultipartContent())
            throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);

        // Save document to disk
        String rootPath = _repository.Document_AddDirectory(documentID, User);
        FileStreamProvider provider = new FileStreamProvider(_repository, rootPath, documentID, User);

        await Request.Content.ReadAsMultipartAsync(provider)
            .ContinueWith(t =>
            {
                if (t.IsFaulted || t.IsCanceled)
                {
                    throw new HttpResponseException(HttpStatusCode.InternalServerError);
                }
            });

2 个答案:

答案 0 :(得分:3)

以下是您在犹他州服务器上检查的一些web.config设置,这些设置可能是导致在另一台服务器上处理另一台服务器时文件大小失败的原因。

httpRuntime maxRequestLength - 请求流的大小限制。默认值为4096(4mb)。

httpRuntime executionTimeout - 请求自动关闭前的秒数

答案 1 :(得分:0)

这与HttpClient有关。我使用了一个filestreamcontent,它延迟了这个过程。 因此,我更改为Bytearraycontent并将所有进程移至异步版本。