Подтвердить что ты не робот

Сервер не может добавлять заголовок после того, как HTTP-заголовки были отправлены для загрузки файлов

Я получаю это исключение с перерывами в моем веб-приложении asp.net mvc 5 С#:

Сервер не может добавлять заголовок после отправки HTTP-заголовков.

Просто происходит загрузка изображений на S3-метод (Web Api Controller).

Предвестники запроса в Global.asax

protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
        {
            HttpApplication app = sender as HttpApplication;
            if (app != null &&
                app.Context != null)
            {
                app.Context.Response.Headers.Remove("Server");
            }
        }

Метод, вызывающий ошибку:

    [HttpPost]
    [Route("UploadImageJSON")]
    public IHttpActionResult UploadImageJSON(HttpRequestMessage request)
    {
        var httpRequest = HttpContext.Current.Request;

        // Check if files are available
        if (httpRequest.Files.Count != 1) return BadRequest();

        var postedFile = httpRequest.Files[0];

        var contentType = postedFile.ContentType;
        if (!contentType.Contains("image"))
        {
            return StatusCode(HttpStatusCode.NotAcceptable);
        }




        var keyUploadFiles = Constants.UrlS3Amazon +
                             S3.UploadToS3WithStream(postedFile.InputStream, contentType);


        return Json(JsonConvert.SerializeObject(keyUploadFiles));


    }

РЕДАКТИРОВАТЬ: Дополнительная информация... У меня есть веб-приложение, размещенное в Elastic BeanStalk с балансировщиком нагрузки, балансировщик нагрузки установил SSL-сертификат, а соединение между балансировщиком нагрузки и EC2 экземпляры находятся в портах 80. Возможно, это может быть полезно.

Журнал Elmah:

System.Web.HttpException(0x80004005): сервер не может добавлять заголовок после отправки HTTP-заголовков.    в System.Web.HttpHeaderCollection.SetHeader(имя строки, значение String, Boolean replace)    в Microsoft.Owin.Host.SystemWeb.CallHeaders.AspNetResponseHeaders.Set(строка String, String [])    в Microsoft.Owin.Infrastructure.OwinHelpers.AppendHeaderUnmodified(IDictionary 2 headers, String key, String[] values) at Microsoft.Owin.ResponseCookieCollection.Append(String key, String value, CookieOptions options) at Microsoft.Owin.Security.Cookies.CookieAuthenticationHandler.<ApplyResponseGrantAsync>d__b.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.<ApplyResponseCoreAsync>d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.<TeardownAsync>d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware 1.d__0.MoveNext() --- Конец трассировки стека из предыдущего места, где было выбрано исключение ---    в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(задача задачи)    в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Задача задачи)    в Microsoft.AspNet.Identity.Owin.IdentityFactoryMiddleware 2.<Invoke>d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Identity.Owin.IdentityFactoryMiddleware 2.d__0.MoveNext() --- Конец трассировки стека из предыдущего места, где было выбрано исключение ---    в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(задача задачи)    в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Задача задачи)    в Microsoft.AspNet.Identity.Owin.IdentityFactoryMiddleware`2.d__0.MoveNext() --- Конец трассировки стека из предыдущего места, где было выбрано исключение ---    в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(задача задачи)    в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Задача задачи)    в Microsoft.Owin.Mapping.MapMiddleware.d__0.MoveNext() --- Конец трассировки стека из предыдущего места, где было выбрано исключение ---    в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()    в Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.EndFinalWork(IAsyncResult ar)    в System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()    на System.Web.HttpApplication.ExecuteStep(шаг IExecutionStep, логический и завершенный синхронно)

Спасибо!!

4b9b3361

Ответ 1

Вы пытались удалить app.Context.Response.Headers.Remove( "Сервер" ); Я думаю, что это проблема?