C # проблема получения FormData с использованием Request.Content.ReadAsMultipartAsync (на сервере IIS) - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь загрузить несколько текстовых файлов (~ 40 файлов, около 4 КБ каждый), прикрепив их к formData и отправив их из моего приложения angular 1.x по запросу. Приложение работает должным образом при запуске сервера в режиме отладки .Проблема возникает только когда я публикую сайт на IIS сервере , приложение просто останавливается, если я отправляю более 15 файлов, и исключение не выдается.Сначала я подумал, что есть какое-то ограничение на длину контента, поэтому я добавил следующий код в мой Web.config файл (это не помогает):

  <system.web>
    <httpRuntime targetFramework="4.5" maxRequestLength="30000000"/>
  </system.web>

И:

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

Это код на моем сервере:

[HttpPost]
public HttpResponseMessage UploadCookiFiles(string cookieUserObj)
{
    if (!Request.Content.IsMimeMultipartContent())
    {
        return Request.CreateErrorResponse(HttpStatusCode.UnsupportedMediaType, "The request doesn't contain valid content!");
    }
    try
    {
        var provider = new MultipartMemoryStreamProvider();
        try
        {
            //it stops HERE, and just does nothing
            var res = Request.Content.ReadAsMultipartAsync(provider).Result; 
        }
        catch (Exception e)
        {
            Logger.Error(e.Message);
        }
        List<string> contentsList = new List<string>();
        foreach (var content in provider.Contents)
        {
            string contentString = content.ReadAsStringAsync().Result;
            contentsList.Add(contentString);
        }
        return new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(result) };
    }
    catch (Exception e)
    {
        return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
    }
}
...