C# 使用webapi上传大文件

C# 使用webapi上传大文件,c#,winforms,asp.net-web-api,C#,Winforms,Asp.net Web Api,我有一个winforms应用程序,它向webAPI发送一个多部分文件。 它适用于办公室的服务器。但是,当服务器在犹他州时,这种方法就不起作用了。对于小文件,这是可以的。但不适用于大文件 以下是我们用于上载的代码: if (!Request.Content.IsMimeMultipartContent()) throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); // Sa

我有一个winforms应用程序,它向webAPI发送一个多部分文件。 它适用于办公室的服务器。但是,当服务器在犹他州时,这种方法就不起作用了。对于小文件,这是可以的。但不适用于大文件

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

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);
                }
            });

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

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


-请求自动关闭前的秒数

这与HttpClient有关。我使用了filestreamcontent,这会延迟进程。
因此,我改为Bytearraycontent,并将所有进程移到异步版本。

Define“不工作”。你试过追踪(提琴手等)吗?提琴手?我尝试使用它,但无法捕获事件。错误显示客户端已断开连接。它不适用于犹他州服务器。Raz-猜测和后续问题不属于“答案”。我建议你对这种类型的回复使用评论。谢谢Ekoo。我想知道为什么我投了反对票。显然,直到我的代表分数超过50,我才能发表评论。堆栈溢出不让我。所以答案就是我所能做的。如果这样做不恰当,我深表歉意。您可以通过提供有关web.config设置可能有帮助、放置位置和使用值的具体细节来改进您的答案。建议不错。再次感谢您解释为什么我收到了否决票,而不是没有评论的投票。WebApi中的Web配置将设置设置为Max。错误总是显示客户端已断开连接。