调用 Azure WebSiteManagementClient GetConfiguration 时 AppSettings 未返回

AppSettings is not returning when calling Azure WebSiteManagementClient GetConfiguration

使用 .NET Azure 包,我正在尝试读取我的 Azure 帐户上应用服务的 AppSettings。

当我尝试获取站点配置时,很多值都是 null,包括 AppSettings 属性

我在我的控制台应用程序中使用以下包:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.Azure.Management.ResourceManager" version="1.1.3-preview" targetFramework="net462" />
  <package id="Microsoft.Azure.Management.Websites" version="1.6.0-preview" targetFramework="net462" />
  <package id="Microsoft.IdentityModel.Clients.ActiveDirectory" version="2.28.0" targetFramework="net462" />
  <package id="Microsoft.Rest.ClientRuntime" version="2.3.5" targetFramework="net462" />
  <package id="Microsoft.Rest.ClientRuntime.Azure" version="3.3.5" targetFramework="net462" />
  <package id="Microsoft.Rest.ClientRuntime.Azure.Authentication" version="2.2.4-preview" targetFramework="net462" />
  <package id="Newtonsoft.Json" version="6.0.8" targetFramework="net462" />
</packages>

下面的代码从应用服务读取配置

using Microsoft.Azure.Management.WebSites;
using Microsoft.Azure.Management.WebSites.Models;
using Microsoft.Rest.Azure.Authentication;
using System;
using System.Collections.Generic;
using System.Configuration;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string subscriptionId = ConfigurationManager.AppSettings["AzureSubscription"];
            string tenantId = ConfigurationManager.AppSettings["AzureTenantId"];
            string clientId = ConfigurationManager.AppSettings["ClientId"];
            string clientSecret = ConfigurationManager.AppSettings["ClientSecret"];

            var serviceCreds = ApplicationTokenProvider.LoginSilentAsync(tenantId, clientId, clientSecret).Result;

            WebSiteManagementClient webClient = new WebSiteManagementClient(serviceCreds);
            webClient.SubscriptionId = subscriptionId;

            string resourceGroup = ConfigurationManager.AppSettings["ResourceGroup"];
            string appServiceName = ConfigurationManager.AppSettings["AppServiceName"];
            string location = ConfigurationManager.AppSettings["AppLocation"];

            SiteConfig siteConfig = webClient.WebApps.GetConfiguration(resourceGroup, appServiceName);

            IList<NameValuePair> appSettings = siteConfig.AppSettings;
            //appSettings is null, but shouldn't be
            Console.Read();

        }
    }
}

我知道凭据是正确的,因为:

更新:

我决定直接调用 REST API。出现同样的问题:

答案:

我不确定为什么应用程序设置没有作为 GetConfiguration 的一部分返回。

但是还有一个更 explicit 的方法确实有效

StringDictionary appSettings = webClient.WebApps.ListApplicationSettings(resourceGroup, appServiceName);