2016-04-25 4 views
0

Ich bin eine neue Person für die Azure-Entwicklung. Ist es möglich, benutzerdefinierte Domainnamen mit der .Net REST API zu Web-Apps hinzuzufügen?Hinzufügen von benutzerdefinierten Domänennamen zu Web-Apps mit der REST-API

+0

Hallo dort. Würden Sie in Erwägung ziehen, der Person unter Ihnen zu antworten, die Ihnen geholfen hat, und/oder ihre Antwort ankreuzen, um sie als korrekt zu markieren? – halfer

+0

Keine Antwort, also stimmen zu schließen. – halfer

Antwort

2

ja, das können Sie tun.

1) Installieren Sie das NuGet Web Sites Management Package in Ihrem Projekt.

2) Rufen Sie die Azure Publish-Einstellungsdatei ab (z. B. mithilfe von Powershell Get-AzurePublishSettingsFile). Sie benötigen das später (der Wert des Verwaltungszertifikatsfelds innerhalb dieser Datei).

2) Instanziieren WebSiteManagementClient. That sollte mit dem Verständnis des Codes helfen.

3) Als nächstes steht der Code unten. Ich habe es gerade getestet und es funktioniert. Zuerst führt er die Webspaces, dann die Webseiten in jedem von Webspace, und Sie sollten die Website Webspaces in die mit Powershell

public const string base64EncodedCertificate = "ManagementCertificateValueFromPublishSettingsFile"; 
    public const string subscriptionId = "AzureSubscriptionId"; 

    static SubscriptionCloudCredentials getCredentials() 
    { 
     return new CertificateCloudCredentials(subscriptionId, new X509Certificate2(Convert.FromBase64String(base64EncodedCertificate))); 
    } 
    static void Main(string[] args) 
    { 
     WebSiteManagementClient client = new WebSiteManagementClient(getCredentials()); 

     WebSpacesListResponse n = client.WebSpaces.List(); 
     n.Select(p => 
     { 
      Console.WriteLine("webspace {0}", p.Name); 
      WebSpacesListWebSitesResponse websitesInWebspace = client.WebSpaces.ListWebSites(p.Name, 
        new WebSiteListParameters() 
        { 
        }); 
      websitesInWebspace.Select(o => 
      { 
       Console.Write(o.Name);  

       return o; 
      }).ToArray(); 
      return p; 
     }).ToArray(); 

     Console.ReadLine(); 
     var configuration = client.WebSites.Get("WebSpaceName", "WebSiteName", new WebSiteGetParameters()); 

     configuration.WebSite.HostNames.Add("new domain"); 
     var resp = client.WebSites.Update("WebSpaceName", "WebSiteName", new WebSiteUpdateParameters() { HostNames = configuration.WebSite.HostNames }); 
     Console.WriteLine(resp.StatusCode); 
     Console.ReadLine(); 
    } 
+1

Gibt es trotzdem, einfach 1 benutzerdefinierten Domain-Namen hinzuzufügen, anstatt alle zu aktualisieren? Scheint, dass es jedes Mal einen CNAME-Check ausführt, wenn es aktualisiert wird, also ist es ein bisschen schwer, wenn du 20 benutzerdefinierte Domains hast. –

0

https://docs.microsoft.com/en-us/azure/app-service/scripts/app-service-powershell-configure-custom-domain

am einfachsten kopieren und einfügen.

$fqdn="<Replace with your custom domain name>" 
$webappname="mywebapp$(Get-Random)" 
$location="West Europe" 

# Create a resource group. 
New-AzureRmResourceGroup -Name $webappname -Location $location 

# Create an App Service plan in Free tier. 
New-AzureRmAppServicePlan -Name $webappname -Location $location ` 
-ResourceGroupName $webappname -Tier Free 

# Create a web app. 
New-AzureRmWebApp -Name $webappname -Location $location -AppServicePlan $webappname ` 
-ResourceGroupName $webappname 

Write-Host "Configure a CNAME record that maps $fqdn to $webappname.azurewebsites.net" 
Read-Host "Press [Enter] key when ready ..." 

# Before continuing, go to your DNS configuration UI for your custom domain and follow the 
# instructions at https://aka.ms/appservicecustomdns to configure a CNAME record for the 
# hostname "www" and point it your web app's default domain name. 

# Upgrade App Service plan to Shared tier (minimum required by custom domains) 
Set-AzureRmAppServicePlan -Name $webappname -ResourceGroupName $webappname ` 
-Tier Shared 

# Add a custom domain name to the web app. 
Set-AzureRmWebApp -Name $webappname -ResourceGroupName $webappname ` 
-HostNames @($fqdn,"$webappname.azurewebsites.net") 
Verwandte Themen