2011-09-12 3 views
6

मेरे पास मेरी होस्ट की गई सेवा में कार्यकर्ता की भूमिका है। कर्मचारी ई-मेल दैनिक आधार भेज रहा है। लेकिन होस्टेड सेवा में, 2 पर्यावरण, स्टेजिंग और उत्पादन हैं। तो मेरी कार्यकर्ता की भूमिका प्रतिदिन 2 बार ई-मेल भेजती है। मैं जानना चाहता हूं कि यह पता लगाने के लिए कि क्या कर्मचारी स्टैगिंग या उत्पादन में है या नहीं। अग्रिम धन्यवाद।यह पता लगाने के लिए कि क्या पर्यावरण अजीब होस्टेड सेवा कार्यकर्ता भूमिका में स्टेजिंग या उत्पादन कर रहा है?

+1

यहां पढ़ा गया है: http://stackoverflow.com/questions/4328462/staging-or-production-instance – Igorek

उत्तर

1

मेरे प्रश्न here के अनुसार, आप देखेंगे कि कोई ऐसा करने का तरीका नहीं है। इसके अलावा, जब तक कि आप वास्तव में नहीं जानते कि आप क्या कर रहे हैं, मैं दृढ़ता से सुझाव देता हूं कि यह न करें।

लेकिन, आप, आप वास्तव में एक अच्छा पुस्तकालय (Azure Service Management via C#) का उपयोग कर सकते हैं, हालांकि हम था कुछ trouble with WCF using it.

है चाहते हैं, तो यहाँ यह कैसे करना है (ध्यान दें पर एक त्वरित नमूना है, तो आप प्रबंधन प्रमाण पत्र शामिल करने की ज़रूरत अपने कोड में एक संसाधन के रूप & Azure करने के लिए) यह तैनात: यदि आप एक एसक्यूएल सर्वर उपयोग कर रहे हैं

private static bool IsStaging() 
     { 
      try 
      { 
       if (!CloudEnvironment.IsAvailable) 
        return false; 

       const string certName = "AzureManagement.pfx"; 
       const string password = "Pa$$w0rd"; 

       // load certificate 
       var manifestResourceStream = typeof(ProjectContext).Assembly.GetManifestResourceStream(certName); 
       if (manifestResourceStream == null) 
       { 
        // should we panic? 
        return true; 
       } 

       var bytes = new byte[manifestResourceStream.Length]; 
       manifestResourceStream.Read(bytes, 0, bytes.Length); 

       var cert = new X509Certificate2(bytes, password); 

       var serviceManagementChannel = Microsoft.Toolkit.WindowsAzure.ServiceManagement.ServiceManagementHelper. 
        CreateServiceManagementChannel("WindowsAzureServiceManagement", cert); 

       using (new OperationContextScope((IContextChannel)serviceManagementChannel)) 
       { 
        var hostedServices = 
         serviceManagementChannel.ListHostedServices(WellKnownConfiguration.General.SubscriptionId); 

        // because we don't know the name of the hosted service, we'll do something really wasteful 
        // and iterate 
        foreach (var hostedService in hostedServices) 
        { 
         var ad = 
          serviceManagementChannel.GetHostedServiceWithDetails(
           WellKnownConfiguration.General.SubscriptionId, 
           hostedService.ServiceName, true); 

         var deployment = 
          ad.Deployments.Where(
           x => x.PrivateID == Zebra.Framework.Azure.CloudEnvironment.CurrentRoleInstanceId). 
           FirstOrDefault 
           (); 

         if (deployment != null) 
         { 
          return deployment.DeploymentSlot.ToLower().Equals("staging"); 
         } 
        } 
       } 

       return false; 
      } 
      catch (Exception e) 
      { 
       // if something went wrong, let's not panic 
       TraceManager.AzureFrameworkTraceSource.TraceData(System.Diagnostics.TraceEventType.Error, "Exception", e); 
       return false; 
      } 
     } 
0

(या तो Azure एसक्यूएल या SQL सर्वर वी एम में आयोजित), आप काम करने से स्टेजिंग कार्यकर्ता भूमिका रोक सकता है केवल उत्पादन सर्वर के सार्वजनिक आईपी को डेटाबेस सर्वर तक पहुंचने की इजाजत देकर।

संबंधित मुद्दे