2013-10-04 168 views

回答

0

您可以调用Get Deployment操作(它也可以在您的永久虚拟机上工作),这会为您提供部署状态,您可以使用它来决定是否需要在虚拟机上执行操作。

class Program 
    { 
     static string subscriptionId = "subscription id"; 
     static string certificateData = "Data from ManagementCertificate node in publish setting file "; 
     static string cloudServiceName = "name of the cloud service"; 
     static X509Certificate2 cert = null; 
     static void Main(string[] args) 
     { 
      cert = new X509Certificate2(Convert.FromBase64String(certificateData)); 
      Test2(); 
      Console.ReadLine(); 
     } 

     static void Test2() 
     { 
      string endpoint = string.Format("https://management.core.windows.net/{0}/services/hostedservices/{1}/deploymentslots/production", subscriptionId, cloudServiceName); 
      HttpWebRequest req = (HttpWebRequest)WebRequest.Create(endpoint); 
      req.ClientCertificates.Add(cert); 
      req.ContentType = "application/xml"; 
      req.Headers.Add("x-ms-version", "2013-03-01"); 
      req.Method = "GET"; 
      try 
      { 
       using (var resp = req.GetResponse()) 
       { 
        using (StreamReader sr = new StreamReader(resp.GetResponseStream())) 
        { 
         var responseData = sr.ReadToEnd(); 
         Console.WriteLine(responseData); 
        } 
       } 
      } 
      catch (WebException webEx) 
      { 
       using (var resp = webEx.Response) 
       { 
        using (StreamReader sr = new StreamReader(resp.GetResponseStream())) 
        { 
         var errorDetails = sr.ReadToEnd(); 
         Console.WriteLine(errorDetails); 
        } 
       } 
      } 

     } 
+0

谢谢,但我似乎无法得到它的工作。如果我使用的是services/hostedservices/{0}/deployments/{1},那么我得不到有用的信息,如果在分段或生产中使用services/hostedservices/{0}/deploymentslots/{1},我会得到ResourceNotFound。你知道我该怎么称呼它吗? – Mark

+0

嗯......这很奇怪。我用一个控制台应用程序试了一下,我得到了正确的回应。我用我使用的代码更新了我的回复。 –

+0

感谢堆。我使用的代码非常类似于你,但是当你工作时,我尝试了更多的测试,发现我传递的是实例名称而不是服务名称。 – Mark

相关问题