Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过C#Azure管理网库向Azure网站添加SSL绑定_C#_Azure_Ssl_Azure Management_Azure Management Api - Fatal编程技术网

通过C#Azure管理网库向Azure网站添加SSL绑定

通过C#Azure管理网库向Azure网站添加SSL绑定,c#,azure,ssl,azure-management,azure-management-api,C#,Azure,Ssl,Azure Management,Azure Management Api,我正在使用Microsoft.WindowsAzure.Management.WebSites 4.4.2-prerelease库创建/修改Azure Web应用程序。我可以创建应用程序,可以更改设置,可以添加自定义域。下一步是添加SSL证书。 我是这样做的: public async Task<WebSiteUpdateResponse> UpdateSslCertificate(String sitename) { var updateParameters = new W

我正在使用
Microsoft.WindowsAzure.Management.WebSites 4.4.2-prerelease
库创建/修改Azure Web应用程序。我可以创建应用程序,可以更改设置,可以添加自定义域。下一步是添加SSL证书。 我是这样做的:

public async Task<WebSiteUpdateResponse> UpdateSslCertificate(String sitename)
{
    var updateParameters = new WebSiteUpdateParameters()
    {
        HostNameSslStates = new List<WebSiteUpdateParameters.WebSiteHostNameSslState>()
        {
            new WebSiteUpdateParameters.WebSiteHostNameSslState()
            {
                ToUpdate = true,
                Name = "mysubdomain.mydomain.com",
                SslState = WebSiteSslState.SniEnabled,
                Thumbprint = "blbhbblblblblblblbMyCertTHUMBPRINT",
            },
        },
    };
    var updateResult = await client.WebSites.UpdateAsync("Default-NorthEuropewebspace", sitename, updateParameters);
    return updateResult;
}
因此添加了新的证书,唯一的状态是0(
websiteslstate.Disabled
),并且没有存储指纹

我做错什么了吗?如何将SSL证书分配给站点?

我引用@trailmax对该问题的回答,以供将来参考

我已经设法使它工作了。主机名将由 CreateOrUpdateSiteHostNameBindingAsync()而不是site.HostNames:

虽然我不确定中的所有参数 HostNameBinding对象是必需的。你能核实一下吗 那里需要房产吗?(我从资源中获取了这些值 探索者)


谢谢你在这里复制。没有意识到我不是唯一一个有这个问题的人。
"hostNameSslStates": [
  {
    "name": "mysubdomain.mydomain.com",
    "sslState": 0,
    "ipBasedSslResult": null,
    "virtualIP": null,
    "thumbprint": null,
    "toUpdate": null,
    "toUpdateIpBasedSsl": null,
    "ipBasedSslState": 0,
    "hostType": 0
  },
  {
    "name": "testingcreation.azurewebsites.net",
    "sslState": 0,
    "ipBasedSslResult": null,
    "virtualIP": null,
    "thumbprint": null,
    "toUpdate": null,
    "toUpdateIpBasedSsl": null,
    "ipBasedSslState": 0,
    "hostType": 0
  },
  {
    "name": "testingcreation.scm.azurewebsites.net",
    "sslState": 0,
    "ipBasedSslResult": null,
    "virtualIP": null,
    "thumbprint": null,
    "toUpdate": null,
    "toUpdateIpBasedSsl": null,
    "ipBasedSslState": 0,
    "hostType": 1
  }
],
       var binding = new HostNameBinding()
         {
             Location = "North Europe",
             Name = hostName,
             CustomHostNameDnsRecordType = CustomHostNameDnsRecordType.CName,
             HostNameType = HostNameType.Verified,
             SiteName = siteName,
             Type = "Microsoft.Web/sites/hostNameBindings",
         };
         var result = await websiteClient.Sites.CreateOrUpdateSiteHostNameBindingAsync(resourceGroupName,
 siteName, hostName, binding);
         site = websiteClient.Sites.GetSite(resourceGroupName, siteName);

         site.HostNameSslStates.Add(new HostNameSslState
         {
             Name = hostName,
             Thumbprint = certificate.Thumbprint,
             SslState = SslState.SniEnabled,
             ToUpdate = true,
         });

         site = await websiteClient.Sites.CreateOrUpdateSiteAsync(resourceGroupName,
 siteName, site);