Azure App Service上的服务器垃圾收集

时间:2017-04-27 13:23:30

标签: c# .net garbage-collection azure-web-sites azure-app-service-plans

是否可以在Azure App Service上使用Server Garbage Collection

我已在gcServer(D:\ home \ site \ wwwroot \ web.config)中设置web.config,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <gcServer enabled="true" />
  </runtime>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath=".\MyApplication.exe" arguments="" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
  </system.webServer>
</configuration>

GCSettings.IsServerGC仍然返回false。

1 个答案:

答案 0 :(得分:7)

根据this,你可以看到这句话:

  

如果未启用服务器垃圾回收,则工作站垃圾回收有效(有或没有并发收集)。服务器垃圾收集仅在多处理器计算机上可用。

默认情况下,如果您的网络应用服务计划是多处理器,如B2,S2,它将自动启用gcServer。

但是如果您的网络应用服务计划是B1,S1,它只有一个核心,它将启用工作站。

以下是测试示例:

我的页面有以下代码:

string result;

        if (GCSettings.IsServerGC == true)
            result = "server";
        else
            result = "workstation";

        Response.Write(result);

然后我将Web应用程序发布到不同的应用程序服务计划。(B1,B2)

结果如下:

enter image description here