//service URI
string partnerserver = "<DestinationServer>";//
string partnerdatabase = "<Source Server>";//
string copy = "True";
string hittinUri = "https://management.core.windows.net:8443/{0}/services/sqlservers/servers/{1}/databases/{2}/databasecopies";
Uri uri = new Uri(String.Format(hittinUri, "<SubscriptionID>", "<SourceServer>","<SourceDataBase>"));
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
request.Headers.Add("x-ms-version", "2012-03-01");
string clientRequestId = Guid.NewGuid().ToString();
request.Headers.Add("x-ms-client-request-id", clientRequestId);
//ServicePointManager.Expect100Continue = true;
//ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
//ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//request.Credentials = CredentialCache.DefaultCredentials;
request.Method = "POST";
//string xml = "<ServiceResource xmlns:i=\"<PartnerServer">http://www.w3.org/2001/XMLSchema-instance"+"xmlns=\"http://schemas.microsoft.com/windowsazure"+"><PartnerServer>"+ partnerserver + "</PartnerServer><PartnerDatabase>" + partnerdatabase + "</PartnerDatabase><IsContinuous>"+copy+"</IsContinuous></ServiceResource>";
string xml = "<ServiceResource xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"xmlns=\"http://schemas.microsoft.com/windowsazure\">"+
"<PartnerServer><destination Server></PartnerServer>" +
"<PartnerDatabase><destination database name></PartnerDatabase>" +
"<IsContinuous>True</IsContinuous>" +
"</ServiceResource>";
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] buf = encoding.GetBytes(xml);
request.ContentType = "application/xml";
request.ContentLength = buf.Length;
Stream newStream = request.GetRequestStream();
newStream.Write(buf, 0, buf.Length);
request.ClientCertificates.Add(GetStoreCertifcate("Certificate Thumprint"));
// var HttpWebResponse = (HttpWebResponse)request.GetResponse();
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
XmlDocument responsebody = new XmlDocument();
HttpStatusCode statuscode;
HttpWebResponse webresponse;
try
{
//Response.Write("<br/> Hitting for Dataservers done at:"+ DateTime.Now.ToString());
webresponse = (HttpWebResponse)request.GetResponse();
//Response.Write("<br/> Data for dataservers recieved at:"+ DateTime.Now.ToString());
}
catch (WebException ex)
{
// GetResponse throws a WebException for 400 and 500 status codes
webresponse = (HttpWebResponse)ex.Response;
}
statuscode = webresponse.StatusCode;
if (webresponse.ContentLength > 0)
{
using (XmlReader reader = XmlReader.Create(webresponse.GetResponseStream()))
{
responsebody.Load(reader);
//Response.Write("<br/> Xml for dataservers
done by:" + DateTime.Now.ToString());
}
}
}
}
When i execute this code... Getting these following errors.
1) "(500) Internal Server Error" in HttpWebResponse GetResponse"
2)Failed to authorize access to the specified subscription.(403 remote access forbidden).
Please help me out for this solution ..
Thanks in advance :)