如何通过 API 将子域添加到 Azure 网站

How to add subdomain to Azure WebSite via API

我的网站托管为 Azure 网站,我需要允许用户创建自己的子域。
我已经使用 DNS 和 CNAME 选项在本地机器上实现了这个,但我不能在 Azure 中实现它。当我尝试为站点添加 Azure 主机名时,我收到主机名必须以“.azurewebsites.net”结尾的错误。

这是我的代码:

var client = new WebSiteManagementClient(new CertificateCloudCredentials(ConfigurationManager.AppSettings["AzureSubscriptionId"],
                    new X509Certificate2(Path.Combine(AppDomain.CurrentDomain.RelativeSearchPath, "{certificate}"), "{password}")));

var configuration = client.WebSites.Get(webSpaceName, webSiteName, new WebSiteGetParameters());

if (configuration.StatusCode != HttpStatusCode.OK)
    throw new Exception("AzureGet: " + subdomain);

configuration.WebSite.HostNames.Add(hostName);
var response = client.WebSites.Update(webSpaceName, webSiteName, new WebSiteUpdateParameters());

是否有任何其他方法可以添加自定义主机名,例如“sub.mydomain.net”?

您可以为您的网站使用通配符自定义域名,然后通过检查传入请求的 headers(主机或 X-Forwarded-Host)来检查应用程序代码中的主机名。

即您的域名将指向 *.mydomain.net 到您的网络应用程序,然后您的数据库跟踪用户注册的域,然后您的网络应用程序进行路由。