(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Aufzählen von Servern

Mit dem Vorgang Server abrufen werden SQL-Datenbank-Server aufgezählt, die für ein Abonnement bereitgestellt werden.

Anforderung

Die Anforderung Server abrufen muss wie folgt angegeben werden. Ersetzen Sie <Abonnement-ID> durch die Abonnement-ID.

 

Methode Anforderungs-URI HTTP-Version

GET

https://management.database.windows.net:8443/<Abonnement-ID>/servers

HTTP/1.1

URI-Parameter

Für diesen Vorgang werden keine URL-Parameter verwendet.

Anforderungsheader

In der folgenden Tabelle werden die erforderlichen und optionalen Anforderungsheader beschrieben.

 

Anforderungsheader Beschreibung

x-ms-version

Erforderlich. Gibt die Version des für die Anforderung zu verwendenden Vorgangs an. Dieser Header sollte auf 1.0 festgelegt werden.

Anforderungstext

Für den Vorgang Server abrufen wird kein Anforderungstext verwendet.

Antwort

Die Antwort enthält den HTTP-Statuscode, einen Satz von Antwortheadern und einen Antworttext.

Statuscode

Bei erfolgreicher Ausführung des Vorgangs Server abrufen wird der HTTP-Statuscode 200 (Erfolg) zurückgegeben.

Bei diesem Vorgang können die in der folgenden Tabelle aufgeführten Fehler auftreten.

 

Fehlercode HTTP-Statuscode Meldung für den Benutzer

40638

Ungültige Anforderung (400)

Ungültige Abonnement-ID <Abonnement-ID>. Das Abonnement ist nicht vorhanden.

40640

Interner Serverfehler (500)

Unerwartete Ausnahme auf dem Server.

40642

Der Dienst ist nicht verfügbar (503)

Der Server ist derzeit zu stark ausgelastet. Wiederholen Sie den Vorgang zu einem späteren Zeitpunkt.

40643

Ungültige Anforderung (400)

Der angegebene Wert des x-ms-version-Headers ist ungültig.

40644

Verboten (403)

Fehler beim Autorisieren des Zugriffs auf das angegebene Abonnement.

40648

Der Dienst ist nicht verfügbar (503)

Es wurden zu viele Anforderungen ausgeführt. Wiederholen Sie den Vorgang zu einem späteren Zeitpunkt.


Weitere Informationen zu Statuscodes für die SQL-Datenbankverwaltungs-API finden Sie unter Status- und Fehlercodes.

Antwortheader

Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann außerdem weitere HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.

 

Antwortheader Beschreibung

x-ms-request-id

Ein Wert, der eine für den Datenbankverwaltungsdienst ausgeführte Anforderung eindeutig identifiziert. Diese Anforderungs-ID wird für die Anforderungsnachverfolgung verwendet. Wenn ein Fehler auftritt, der eine Kontaktaufnahme des Benutzers zum Microsoft Support erfordert, muss Microsoft die Anforderungs-ID mitgeteilt werden, um das Nachverfolgen und Beheben des Fehlers zu erleichtern.

Die SQL-Datenbankverwaltungs-API unterstützt keine asynchronen Aufrufe.

Antworttext

Der Antworttext weist das folgende Format auf:

<Servers xmlns="http://schemas.microsoft.com/sqlazure/2010/12/">
  <Server>
    <Name>ServerName</Name>
    <AdministratorLogin>AdminAccount</AdministratorLogin>
    <Location>North Central US | South Central US | North Europe | West Europe | East Asia | Southeast Asia</Location>
  </Server>
</Servers>

Beispielantwort

Nachfolgend wird ein Beispielantworttext gezeigt:

<Servers xmlns="http://schemas.microsoft.com/sqlazure/2010/12/">
  <Server>
    <Name>bpr0d6li5t</Name>
    <AdministratorLogin>MyAdmin</AdministratorLogin>
    <Location>North Central US</Location>
  </Server>
</Servers>

Codebeispiel

Der folgende Code ist ein einfaches Beispiel für das Aufrufen dieses Vorgangs über eine C#-Konsolenanwendung. In diesem Code werden die System.Net.HttpWebRequest-Klasse und die System.Security.Cryptography.X509Certificate2-Klasse verwendet, um die Anforderung mit dem Zertifikat für private Schlüssel zu senden.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Security.Cryptography.X509Certificates;
using System.IO;
using System.Xml;

namespace SQLAzureDatabaseManagement
{
    class Program
    {

        static void Main(string[] args)
        {
            string certFile;
            string certPassword;
            string subscriptionId;

            if (args.Length != 3)
            {
                Console.WriteLine("\nInsufficient Arguments.\n");
                Console.WriteLine("Expected CertfilePath, CertfilePassword and SubscriptionID.\n");
                return;
            }
            else
            {
                certFile = args[0];
                certPassword = args[1];
                subscriptionId = args[2];
            }



            //=========================================================================//
            //=== Execute SQL Database Server and Firewall Rules Management Operations ===//
            //=========================================================================//

            // List the servers for the subscription
            GetServers(certFile, certPassword, subscriptionId);
        }


        //===============================================================================================================//
        //===                                                                                                         ===//
        //=== GetServers                                                                                              ===//
        //===                                                                                                         ===//
        //=== This function returns the list of SQL Database servers already provisioned for the specified subscription. ===//
        //===                                                                                                         ===//
        //=== Input Parameters:                                                                                       ===//
        //===                                                                                                         ===//
        //===   string certFilename : Full path to the Personal Information Exchange (.pfx) file which holds the      ===//
        //===                         private key for the certificate. The public key file must already be associated ===//
        //===                         to the subscription.                                                            ===//
        //===                                                                                                         ===//
        //===   string certPassword: Password on the Personal Information Exchange (.pfx) file.                       ===//
        //===                                                                                                         ===//
        //===   string subscriptionId : This is the subscription id GUID in its string form.                          ===//
        //===                                                                                                         ===//
        //=== Output:                                                                                                 ===//
        //===                                                                                                         ===//
        //===   The output of this function is written to the console. The output includes:                           ===//
        //===                                                                                                         ===//
        //===     The subscription id passed to this function.                                                        ===//
        //===                                                                                                         ===//
        //===     The x-ms-request-id header returned from the REST API call.                                         ===//
        //===                                                                                                         ===//
        //===     The HTTP Status code return from the REST API call.                                                 ===//
        //===                                                                                                         ===//
        //===     The response body containing the server list returned from the REST API call or the exception/error ===//
        //===     encountered during the REST API call.                                                               ===//
        //===                                                                                                         ===//
        //===============================================================================================================//

        static void GetServers(string certFilename, string certPassword, string subscriptionId)
        {
            Console.WriteLine("\n================================");
            Console.WriteLine("====== GetServers Request ======");
            Console.WriteLine("================================\n");
            Console.WriteLine("Subscription : {0} \n", subscriptionId);

            try
            {
                string url = string.Format("https://management.database.windows.net:8443/{0}/servers", subscriptionId);
                HttpWebRequest webRequest = HttpWebRequest.Create(url) as HttpWebRequest;


                webRequest.ClientCertificates.Add(new X509Certificate2(certFilename, certPassword));
                webRequest.Headers["x-ms-version"] = "1.0";
                webRequest.Method = "GET";

                //=== No Request Payload needed to return server list ===//

                using (WebResponse webResponse = webRequest.GetResponse())
                {
                    //=== x-ms-request-id is useful for troubleshooting request failures with Microsoft ===//
                    Console.WriteLine("Response x-ms-request-id : {0}", webResponse.Headers["x-ms-request-id"]);
                    Console.WriteLine("HttpStatusCode = {0}\n", (int)((HttpWebResponse)webResponse).StatusCode);

                    using (Stream stream = webResponse.GetResponseStream())
                    {
                        using (StreamReader sr = new StreamReader(stream))
                        {
                            Console.WriteLine(sr.ReadToEnd());
                        }
                    }
                }
            }


            //====================================================================================//
            //=== Catch WebExceptions. The SQL Database Management Service will          ===//
            //=== provide detailed error information in the response stream for WebExceptions. ===//
            //====================================================================================//

            catch (WebException webEx)
            {
                HttpWebResponse errorResponse = (HttpWebResponse)webEx.Response;
                Console.WriteLine(string.Format("HttpStatusCode = {0}", (int)errorResponse.StatusCode));

                try
                {
                    using (Stream errorResponseStream = errorResponse.GetResponseStream())
                    {
                        using (StreamReader sr = new StreamReader(errorResponseStream))
                        {
                            Console.WriteLine(sr.ReadToEnd());
                        }
                    }
                }
                catch (Exception innerEx)
                {
                    Console.WriteLine(innerEx.ToString());
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString() + "\n");
            }
        }

    }
}


Erstellen des Beispielcodes

Der Beispielcode kann einem Konsolenanwendungsprojekt hinzugefügt und in der integrierten Entwicklungsumgebung (Integrated Development Environment, IDE) Visual Studio erstellt werden, oder Sie können ihn mit dem Visual C#-Compiler, der im .NET Framework enthalten ist, über die Befehlszeile einer Eingabeaufforderung kompilieren.

Im nachfolgend gezeigten Build wurde der Code in eine neue Textdatei mit dem Namen GetServers.cs kopiert und über die Befehlszeile kompiliert. Dieser Build generiert außerdem die Debuginformationen.

C:\Test>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc /debug /out:GetServers.exe GetServers.cs

Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1
Copyright (C) Microsoft Corporation. All rights reserved.


C:\Test>dir
 Volume in drive C has no label.
 Volume Serial Number is 5471-ED89

 Directory of C:\Test

02/15/2011  02:24 PM    <DIR>          .
02/15/2011  02:24 PM    <DIR>          ..
02/15/2011  02:24 PM             6,144 GetServers.exe
02/15/2011  02:24 PM            13,824 GetServers.pdb

Ausführen des Beispielcodes

Im folgenden Beispiel wird der Beispielcode mit dem Zertifikat für private Schlüssel MyCert.pfx für die Authentifizierung ausgeführt. Das Zertifikat für öffentliche Schlüssel (MyCert.cer) wurde dem Abonnement bereits hinzugefügt. Weitere Informationen zur Authentifizierung finden Sie unter Authentifizieren von Anforderungen der Windows Azure SQL-Datenbankverwaltungs-API.

Der global eindeutige Bezeichner 2eae7c21-ffd1-49e4-ac22-39095e0b9f02 ist eine Windows Azure-Beispielabonnement-ID. Der XML-Code in der Ausgabe enthält die Antwort des Servers auf die Anforderung zum Abrufen aller Server für das Abonnement. Die Antwort gibt einen Server mit dem Namen l1ej7qgrem an, der am Standort "North Central US" für das Abonnement bereitgestellt wird und dessen Administratorkontoname auf "MyAdmin" festgelegt ist.

C:\Test>GetServers C:\SecureStore\MyCert.pfx MyCertPassword 2eae7c21-ffd1-49e4-ac22-39095e0b9f02


================================
====== GetServers Request ======
================================

Subscription : 2eae7c21-ffd1-49e4-ac22-39095e0b9f02

Response x-ms-request-id : ddec2471-d98b-4094-aa61-2e57b1d35a4d
HttpStatusCode = 200

<Servers xmlns="http://schemas.microsoft.com/sqlazure/2010/12/">
  <Server>
    <Name>l1ej7qgrem</Name>
    <AdministratorLogin>MyAdmin</AdministratorLogin>
    <Location>North Central US</Location>
  </Server>
</Servers>

Siehe auch

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.