Неправильный прогресс загрузки на IIS 8 / Angular2 + / C # - PullRequest
0 голосов
/ 28 сентября 2018

У меня Windows Server 2012 RC с IIS 8. На этом сервере у меня есть две службы, которые работают на порту 80

  • Сайт HTML / JS, который будет работать на клиенте и делать запросыв другую службу.
  • Запись WebAPI на C #, которая будет получать запросы от клиента.Одной из функций сайта является загрузка файлов на сервер.

Проблема заключается в том, что когда WebAPI и сайт HTML работают в одном и том же порту, получаемый мной процесс загрузки происходит неправильно.

Пример. Если загрузка составляет 20%, я получаю отчет на 70%, а затем в какой-то момент до завершения загрузки получаю отчет на 100%.

Изображение, показывающее проблему

Код для получения файла в серверной части:

    public async Task<IHttpActionResult> UploadVideo()
    {
        if (!Request.Content.IsMimeMultipartContent())
            throw new 
            HttpResponseException(HttpStatusCode.UnsupportedMediaType);

        var streamProvider = new 
        CustomMultipartFormDataStreamProvider(ServerPath);

        await 
        Request.Content.ReadAsMultipartAsync(streamProvider)
    }

Код для загрузки файла в веб-интерфейсе:

    uploadFile(formData) {
        this.uploadRequest = this.services.uploadVideo(formData, 
        this.video.Id).subscribe(res => {
          // Via this API, you get access to the raw event stream.
          // Look for upload progress events.
          if (res.type === HttpEventType.UploadProgress) {
            // This is an upload progress event. Compute and show the % 
            done:
            console.log(res.loaded + "/" + res.total);
            this.value = Math.round(100 * res.loaded / res.total);
            console.log(this.value);
            if (this.value == 100) {
              this.readyToPost = true;
            }
          } else if (res instanceof HttpResponse) {
              this.uploadFinished = true;
          }
        });
    }

Я сделал тест, и когда две системы работают на разных портах, например, 80 и 8080, прогресс работает просто отлично.

Есть некоторая конфигурация, которую я могу сделать, чтобы заставить процесс загрузки работать, когда две службы работаютработает на том же порту?

Спасибо.

...