Exportar (0) Imprimir
Expandir Tudo

Removendo servidores

A operação Remover Servidor remove um servidor do Banco de dados SQL de uma assinatura.

Solicitação

Veja a seguir como a solicitação Remover Servidor deve ser especificada. Substitua <subscription-id> pela sua ID de assinatura e <servername> pelo nome do servidor a ser removido.

 

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

DELETE

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

HTTP/1.1

Parâmetros URL

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 Remover Servidor não utiliza um corpo de solicitação.

Resposta

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

Código de status

Uma operação Remover Servidor bem-sucedida retornará o código de status HTTP 200 (Ê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.

40645

Solicitação incorreta (400)

O nome de servidor <servername> não pode ser nulo ou vazio. Ele só pode conter letras minúsculas 'a'-'z', os números 0-9 e o hífen. O hífen não deve aparecer à esquerda ou à direita do nome.

40646

Solicitação incorreta (400)

A ID da assinatura não pode estar vazia.

40647

Solicitação incorreta (400)

A assinatura <subscription-id> não tem o servidor <servername>.

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

A operação Remover Servidor não retorna um corpo de resposta. O código de status HTTP indica êxito ou falha.

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;
            string ServerName;

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



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

            // Drop a server by name
            DropServer(certFile, certPassword, subscriptionId, ServerName);
        }


        //===============================================================================================================//
        //===                                                                                                         ===//
        //=== DropServer                                                                                              ===//
        //===                                                                                                         ===//
        //=== This function should drop the specified SQL Database server from 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 : The password of the Personal Information Exchange (.pfx) file.                  ===//
        //===                                                                                                         ===//
        //===   string subscriptionId : This is the subscription id GUID in its string form.                          ===//
        //===                                                                                                         ===//
        //===   string Server : The SQL Database server that will be dropped from the subscription.                      ===//
        //===                                                                                                         ===//
        //=== Output:                                                                                                 ===//
        //===                                                                                                         ===//
        //===   The output of this function is written to the console. The output includes:                           ===//
        //===                                                                                                         ===//
        //===     The subscription id passed to this function.                                                        ===//
        //===                                                                                                         ===//
        //===     The server name passed to this function.                                                            ===//
        //===                                                                                                         ===//
        //===     The x-ms-request-id header returned from the REST API call.                                         ===//
        //===                                                                                                         ===//
        //===     The HTTP Status code returned from the REST API call.                                               ===//
        //===                                                                                                         ===//
        //===     The exception/error encountered during the REST API call.                                           ===//
        //===                                                                                                         ===//
        //===============================================================================================================//

        static void DropServer(string certFilename, string certPassword, string subscriptionId, string Server)
        {

            Console.WriteLine("\n===========================");
            Console.WriteLine("=== Drop Server Request ===");
            Console.WriteLine("===========================\n");
            Console.WriteLine("Subscription : {0}", subscriptionId);
            Console.WriteLine("Server : {0}\n", Server);

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

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

                //=== No Request Payload needed to return drop the server ===//

                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 DropServer.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:DropServer.exe DropServer.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:36 PM    <DIR>          .
02/15/2011  02:36 PM    <DIR>          ..
02/15/2011  02:36 PM             6,144 DropServer.exe
02/15/2011  02:36 PM            13,824 DropServer.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. Esta assinatura já tem um servidor do Banco de dados SQL denominado l1ej7qgrem provisionado para ela da localidade “centro-norte dos Estados Unidos”. O comando mostrado a seguir envia uma solicitação para que o servidor seja removido da assinatura. O código de status HTTP, 200, é um código de resposta de êxito indicando que a operação foi bem-sucedida.

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

===========================
=== Drop Server Request ===
===========================

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

Response x-ms-request-id : 581b9ee5-1a99-449e-92d4-a55766a12a57
HttpStatusCode = 200

Consulte também

Contribuições da comunidade

A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2015 Microsoft