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

时间:2015-09-22 17:22:09

标签: c# azure dns azure-web-sites hostname

我的网站托管为Azure WebSite,我需要允许用户创建自己的子域 我已经使用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());

是否还有其他方法可以添加自定义HostName,例如' sub.mydomain.net '?

1 个答案:

答案 0 :(得分:2)

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

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