Exportar (0) Imprimir
Expandir Tudo
Este tópico ainda não foi avaliado como - Avalie este tópico

Enumerando servidores

A operação Obter Servidores enumera os servidores Banco de dados SQL que são provisionados para uma assinatura.

Solicitação

Veja a seguir como a solicitação Obter Servidores deve ser especificada. Substitua <subscription-id> pela sua ID de assinatura.

 

Método URI de solicitação Versão de HTTP

GET

https://management.database.windows.net:8443/<subscription-id>/servers

HTTP/1.1

Parâmetros URI

Nenhum parâmetro de URL é usado com esta operação.

Cabeçalhos de solicitação

A tabela a seguir descreve os cabeçalhos de solicitação obrigatórios e opcionais.

 

Cabeçalho de solicitação Descrição

x-ms-version

Obrigatório. Especifica a versão da operação a ser usada para esta solicitação. Esse cabeçalho deve ser definido como 1.0.

Corpo da solicitação

A operação Obter Servidores não utiliza um corpo de solicitação.

Resposta

A resposta inclui um código de status HTTP, um conjunto de cabeçalhos de resposta e um corpo de resposta.

Código de status

Uma operação Obter Servidores bem-sucedida retornará o código de status HTTP 200 (Com êxito).

A tabela a seguir lista alguns dos erros em potencial desta operação.

 

Código do erro Código de status HTTP Mensagem do usuário

40638

Solicitação incorreta (400)

Id de assinatura <subscription-id> inválida. A assinatura não existe.

40640

Erro interno do servidor (500)

O servidor encontrou uma exceção inesperada.

40642

Serviço não disponível (503)

O servidor está muito ocupado no momento. Tente novamente mais tarde.

40643

Solicitação incorreta (400)

O valor de cabeçalho x-ms-version especificado é inválido.

40644

Proibido (403)

Falha ao autorizar o acesso à assinatura especificada.

40648

Serviço não disponível (503)

Foram feitas muitas solicitações. Tente novamente mais tarde.


Para obter mais informações sobre códigos de status da API de gerenciamento do Banco de dados SQL, consulte Status e códigos de erro.

Cabeçalhos de resposta

A resposta para esta operação inclui os cabeçalhos a seguir. A resposta também pode incluir cabeçalhos padrão HTTP adicionais. Todos os cabeçalhos padrão obedecem a especificação de protocolo HTTP/1.1.

 

Cabeçalho de resposta Descrição

x-ms-request-id

Um valor que identifica exclusivamente uma solicitação feita no serviço de gerenciamento de banco de dados. Esta id de solicitação é usada no controle de solicitações. Se ocorrer uma falha que exija que o usuário contate o Suporte Microsoft, forneça a id da solicitação à Microsoft para ajudar a controlar e resolver a falha para a solicitação.

A API de gerenciamento do Banco de dados SQL não oferece suporte a chamadas assíncronas.

Corpo da resposta

Formato do corpo da resposta:

<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>

Exemplo de resposta

Veja este exemplo de um corpo de resposta:

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

Exemplo de código

O código a seguir apresenta um exemplo simples para chamar esta operação de um aplicativo de console C#. Este código usa as classes System.Net.HttpWebRequest e System.Security.Cryptography.X509Certificate2 para submeter a solicitação através do certificado de chave privada.

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");
            }
        }

    }
}


Compilando o código de exemplo

O código de exemplo pode ser adicionado a um projeto de aplicativo de console e compilado no Visual Studio IDE (ambiente de desenvolvimento integrado). Outra alternativa é compilar da linha de comando de um prompt de comando usando o compilador Visual C# que também é incluído com o .NET Framework.

No exemplo a seguir, o código foi copiado em um novo arquivo de texto denominado GetServers.cs e compilado da linha de comando. Esta compilação também gera informações de depuração.

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

Executando o código de exemplo

O exemplo a seguir executa o código de exemplo usando o certificado de chave privada MyCert.pfx para autenticação. O certificado de chave pública (MyCert.cer) já foi adicionado à assinatura. Para obter mais informações sobre autenticação, consulte Autenticando solicitações de API de gerenciamento do Banco de dados SQL do Windows Azure.

O identificador globalmente exclusivo 2eae7c21-ffd1-49e4-ac22-39095e0b9f02 é um exemplo de id de assinatura Windows Azure. O XML apresentado na saída mostra a resposta do servidor à solicitação de obter todos os servidores para a assinatura. A resposta mostra um servidor, l1ej7qgrem, provisionado para a assinatura na localidade “centro-norte dos Estados Unidos” com o nome da conta do administrador definido como “MyAdmin”.

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>

Consulte também

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários

Contribuições da comunidade

Mostrar:
© 2014 Microsoft. Todos os direitos reservados.