我在使用ASP.NET Web API从客户端到服务器上传大文件(最多500 MB)时遇到问题.上传文件大小超过370 MB时出现问题.较小的文件没有问题地到达Web API,但是如果文件较大,我在Web API处接收空值参数.
我试图上传的文件是BSON序列化的,所以它是一个名为"poststring"的字符串,并在服务器端反序列化.
BSON序列化也没有问题,没有客户端文件的大小.
我没有收到任何错误,当文件较大时它只是作为null到达.
客户方面的要求:
HttpWebRequest webRequest = WebRequest.Create(uri) as HttpWebRequest; webRequest.Method = "POST"; const string contentType = "application/json"; webRequest.ContentType = contentType; webRequest.ContentLength = postString.Length; StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream()); requestWriter.Write(postString); requestWriter.Close(); StreamReader responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream()); string responseData = responseReader.ReadToEnd(); responseReader.Close(); webRequest.GetResponse().Close();
Web API:
public void UploadDocuments([FromBody]string aBsonString) { //If aBsonString is larger than 370 mb, the string is null! //CODE }
我在IIS中尝试的事情:
- 我已将maxAllowedContentLength设置为2147483648
- 我已将maxRequestLength设置为2147483648
我为测试设置了如此大的值,我稍后会减少它,因为我知道这可能是一个漏洞.