ApplicationHost.xdt в веб-приложениях Azure

Как изменить applicationHost.config в веб-приложении Azure? Я попробую:

using (ServerManager serverManager = new ServerManager())
{
    Microsoft.Web.Administration.Configuration config = serverManager.GetApplicationHostConfiguration();
    Microsoft.Web.Administration.ConfigurationSection webLimitsSection = config.GetSection("system.applicationHost/webLimits");

    webLimitsSection["connectionTimeout"] = TimeSpan.Parse("00:00:10");
    webLimitsSection["dynamicIdleThreshold"] = 150;
    webLimitsSection["headerWaitTimeout"] = TimeSpan.Parse("00:00:10");
    webLimitsSection["minBytesPerSecond"] = 500;

    serverManager.CommitChanges();
}

Но поймать исключение:

Имя файла: \?\D:\Windows\system32\inetsrv\config\applicationHost.config Ошибка: невозможно записать файл конфигурации из-за недостаточных разрешений

1 ответ

Способ сделать это - использовать XML Document Transforms (XDT), на который есть ссылка здесь.

Для вашего сценария создайте файл с именем applicationhost.xdt, который содержит следующее:

<configuration  xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.applicationHost>
    <webLimits xdt:Transform="SetAttributes(connectionTimeout)"
               connectionTimeout="00:00:10" />
    <webLimits xdt:Transform="SetAttributes(dynamicIdleThreshold)"
           dynamicIdleThreshold="150" />
    <webLimits xdt:Transform="SetAttributes(headerWaitTimeout)"
               headerWaitTimeout="00:00:10" />
    <webLimits xdt:Transform="SetAttributes(minBytesPerSecond)"
               minBytesPerSecond="500" />
  </system.applicationHost>
</configuration>

Затем, используя FTP-клиент (я использовал FileZilla), скопируйте его в папку сайта (не wwwroot) для вашего веб-приложения.

введите описание изображения здесь

Наконец, перезапустите веб-приложение, которое вы можете сделать на портале Azure.

Вы можете проверить, применяются ли изменения, используя расширение сайта Kudu. После входа в Kudu перейдите в окно Debug Console (CMD) и перейдите в папку Logfiles, а затем в папку Transform.

введите описание изображения здесь

В папке Transform вы увидите файл "*scm.log", который покажет преобразования. Это должно выглядеть примерно так.

введите описание изображения здесь

Другие вопросы по тегам