2016-02-19 3 views
0

У меня есть веб-сервис Azure, сидящий за Azure API Management. Это означает, что уровень управления API использует SSL для связи с моей службой вместе с сертификатом клиента для аутентификации. Я сталкиваюсь с тем, что, похоже, является общей проблемой при такой установке, где размеры POST больше 49152 приводят к ошибке 413 RequestEntityTooLarge. Существует ряд документов, которые ссылаются на параметр UploadReadAheadSize, но все мои попытки установить это значение в Web.config приводят к ошибкам внутреннего сервера. Вот как я устанавливаю значение:Каков правильный способ настройки UploadReadAheadSize в веб-службе Azure?

<system.webServer> 
<serverRuntime uploadReadAheadSize="1048576" /> 

В идеале я хочу использовать что-то большее, но я просто пытаюсь получить вещи работать первым. В тот момент, когда я развертываю этот параметр, все последующие запросы терпят неудачу с внутренней ошибкой сервера. Я не могу найти что-либо в своих диагностических журналах, чтобы указать, почему происходит этот сбой.

Ищет любые указатели, где/как установить это значение. Благодаря!

ответ

0

Наконец-то понял это. Обратите внимание, что в идеале, поскольку я использую только cert auth, я должен установить sslFlags в «required». Я пробовал это, но не смог правильно работать с Azure API Management. Я продолжал получать ошибки 403.7 от IIS. На данный момент я оставляю его установленным для «переговоров» и увеличения значения uploadReadAheadSize, как указано ниже:

public class WebRole : RoleEntryPoint 
{ 
    public override bool OnStart() 
    { 
     try 
     { 
      using (ServerManager server = new ServerManager()) 
      { 
       string siteName = $"{RoleEnvironment.CurrentRoleInstance.Id}_Web"; 
       Configuration config = server.GetApplicationHostConfiguration(); 
       ConfigurationSection accessSection = config.GetSection("system.webServer/security/access", siteName); 
       accessSection["sslFlags"] = @"Ssl,SslNegotiateCert"; 
       ConfigurationSection runtimeSection = config.GetSection("system.webServer/serverRuntime", siteName); 
       runtimeSection["uploadReadAheadSize"] = 5242880; 
       server.CommitChanges(); 
      } 
     } 
     catch (Exception e) 
     { 
      Trace.TraceError(e.Message); 
      throw; 
     } 

     return base.OnStart(); 
    } 
} 
Смежные вопросы