Azure Web Apps中的ApplicationHost.xdt

And*_*huk 5 c# azure azure-web-sites web.config-transform

如何在Azure Web应用程序中更改applicationHost.config?我尝试:

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();
}
Run Code Online (Sandbox Code Playgroud)

但抓住异常:

文件名:\?\ D:\ Windows\system32\inetsrv\config\applicationHost.config错误:由于权限不足,无法写入配置文件

Ric*_*ney 13

执行此操作的方法是使用此处引用的XML文档转换(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>
Run Code Online (Sandbox Code Playgroud)

然后,使用FTP客户端(我使用FileZilla),将其复制到您的Web应用程序的站点文件夹(而不是wwwroot).

在此输入图像描述

最后,重新启动您可以从Azure门户执行的Web应用程序.

您可以使用Kudu站点扩展验证是否应用了更改.登录Kudu后,转到Debug Console(CMD)窗口并深入查看Logfiles文件夹,然后查看Transform文件夹.

在此输入图像描述

在Transform文件夹中,您将看到一个"*scm.log"文件,该文件将显示转换.看起来应该是这样的.

在此输入图像描述