Azure网站扩展

时间:2016-10-25 04:52:35

标签: azure azure-web-sites

我可以使用Azure管理库扩展azure web apps / api应用程序吗?我基本上想要实现扩展和缩小Web应用程序来处理限制。因此,我需要通过C#代码扩展Web应用程序和api应用程序。任何指向apprpriate库/ ReST API的指针?

在下面提到的答案的帮助下,我了解如何更新APP服务计划以扩展,但是,我无法为我的APP服务找到webHostingPlanName。我尝试使用下面的代码,托管计划总是出现空。

        var regionName = "myregion";

        var credentials = GetCredentials();

        var websiteManagementClient = CloudContext.Clients.CreateWebSiteManagementClient(credentials);

        var webSpaces = websiteManagementClient.WebSpaces.List();
        var webSpace = webSpaces.FirstOrDefault(x => x.GeoRegion == regionName);
        if (webSpace == null)
        {
            throw new Exception(string.Format("No webspace for region {0} found", regionName));
        }

        var webHostingPlans = websiteManagementClient.WebHostingPlans.List(webSpace.Name);
        var webHostingPlan = webHostingPlans.FirstOrDefault();// this is null always, I know an APP service exists in this region

1 个答案:

答案 0 :(得分:2)

是的,我们可以使用Microsoft.WindowsAzure.Management.Websites库来扩展和缩小网络应用程序。 使用方法WebSiteManagementClient.WebHostingPlans.UpdateAsync(webspaceName, webHostingPlanName, webHostingPlanUpdateParameters)来实现它。

我做了一个演示来完成这个。以下是我的详细步骤:

1.安装我们可以从link获取的Microsoft.WindowsAzure.Management.WebSites。

2.创建WebsiteManagementClient对象

我使用cert创建了websitemagement客户端。

  • 安装VS后,使用位于VS文件夹下的makecert.exe创建证书。

    makecert -sky exchange -r -n "CN=[CertificateName]" -pe -a sha1 -len 2048 -ss My "[CertificateName].cer
    

enter image description here

  • 上传。然后,Azure门户的Cert文件获取指纹

enter image description here 第3。使用代码生成WebsiteManagementClient对象

          public static X509Certificate2 GetCert(string thumbprint)
    {

        X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
        certStore.Open(OpenFlags.ReadOnly);
   X509Certificate2Collection certCollection = certStore.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false);
        if (certCollection.Count <= 0) return null;
        X509Certificate2 cert = certCollection[0];
        return cert;
    }

var cert = GetCert(string thumbprint) var subscriptionId ="Your subscriptionId" var webSiteManagementClient = new WebSiteManagementClient(new CertificateCloudCredentials(subscriptionId, cert));

4.构建WebHostingPlanUpdateParameters

var webHostingPlanUpdateParameters = new WebHostingPlanUpdateParameters
                {
                    NumberOfWorkers = 1, //the number of the instances
                    SKU = SkuOptions.Standard, 
                    WorkerSize = WorkerSizeOptions.Small
                };

5.使用代码

更新WebHostingPlans
client.WebHostingPlans.UpdateAsync(webspaceName, webHostingPlanName, webHostingPlanUpdateParameters);
  

注意:如果您尝试在Azure上运行该项目。请参阅文档Using Certificates in Azure Websites Applications添加名为WEBSITE_LOAD_CERTIFICATES且其值设置为证书指纹的应用设置将使您的Web应用程序可以访问