【问题标题】:Disable pool recycling on Azure Websites在 Azure 网站上禁用池回收
【发布时间】:2015-02-09 19:53:50
【问题描述】:

我在 Azure 网站上部署了一个网站,我想禁用池回收。

如果您有常规的 IIS 安装,您可以在应用程序池高级设置中通过将“回收 -> 禁用重叠回收”设置为 true 来禁用此功能。

但我似乎无法在 azure 管理控制台中找到此选项,也没有在线找到有关此主题的任何信息。

任何指针将不胜感激!

【问题讨论】:

    标签: iis azure azure-web-app-service


    【解决方案1】:
    【解决方案2】:

    非常感谢 Puneet Gupta 为我指明了正确的方向! 我无法使用确切的解决方案,但它让我走上了正确的道路。

    我是这样解决这个问题的:

    1) 获取 applicationHost.config。 最简单的方法是通过“文件”通过 SCM 控制台,然后按照 json 中的链接。 最后,你到了这里:https://YOUR_WEBSITE_NAME.scm.azurewebsites.net/api/vfs/LocalSiteRoot/Config/applicationhost.config

    2) 识别重叠回收的当前状态。 在 applicationHost.config 文件中,查找“applicationPools”元素 它应该是这样的:

    <applicationPools>
      <add name="YOUR_SITE_NAME" managedRuntimeVersion="v4.0">
        <processModel identityType="ApplicationPoolIdentity" />
      </add>
      <add name="~1YOUR_SITE_NAME" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated">
        <processModel identityType="ApplicationPoolIdentity" />
      </add>
    </applicationPools>
    

    如果你看到这个,那么重叠回收是启用! 你不能直接写入这个文件,但幸运的是微软给了我们改造它的能力!

    3) 改造它! 您可以通过将 applicationHost.xdt 文件放在网站的 /site 目录中来转换 applicationHost.config 文件(请注意,网站本身部署在 /site/wwwroot 目录中,因此您的 applicationHost.xdt 转换必须驻留在您网站所在位置的父文件夹。 如果你想禁用重叠回收,那么这就是你放在文件中的内容:

    <?xml version="1.0"?>
    <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">>
      <system.applicationHost>
        <applicationPools>
          <add name="YOUR_SITE_NAME" xdt:Locator="Match(name)">
            <recycling disallowOverlappingRotation="true" xdt:Transform="Insert" />
          </add>
          <add name="~1YOUR_SITE_NAMEd" xdt:Locator="Match(name)">
            <recycling disallowOverlappingRotation="true" xdt:Transform="Insert" />
          </add>
        </applicationPools>
      </system.applicationHost>
    </configuration>
    

    4) 重启网站 最后,您需要重新启动您的站点以应用您的转换。 重新启动后,再次转到第 1 步,您现在应该会看到以下内容:

    <applicationPools>
      <add name="YOUR_SITE_NAME" managedRuntimeVersion="v4.0">
        <processModel identityType="ApplicationPoolIdentity" />
        <recycling disallowOverlappingRotation="true" />
      </add>
      <add name="~1YOUR_SITE_NAME" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated">
        <processModel identityType="ApplicationPoolIdentity" />
        <recycling disallowOverlappingRotation="true" />
      </add>
    </applicationPools>
    

    等等:重叠回收现在已在您的 azure 网站上禁用。

    【讨论】:

    • 您知道名称中带有“~1”的站点是什么吗?是单片机应用吗?
    • 是的,它似乎是。
    • 您可以使用环境变量而不是硬编码 YOUR_SITE_NAME。我发现%WEBSITE_SITE_NAME% = YOUR_SITE_NAME%WEBSITE_IIS_SITE_NAME% = ~1YOUR_SITE_NAME。 Kudu wiki 有一些使用环境变量替换的示例:github.com/projectkudu/kudu/wiki/…
    • 现在应该是“%XDT_SITENAME%”和“~1%XDT_SITENAME%”
    猜你喜欢
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    相关资源
    最近更新 更多