Service Management API lanciato su azure, problema

Answered Service Management API lanciato su azure, problema

  • Wednesday, January 11, 2012 10:07 AM
     
      Has Code

    ho caricato due certificati su azure.
    uno in management certificate e uno nei certificati del host service.

    se faccio un eseguibile da lanciarew dal pc le management API funzionano, se invece faccio un webservices e lo carico su azure mi dice che non c'è il certificato. Probailmente sbaglio a chiamarlo su azure.
    io faccio così

     

     X509Store certificateStore = new X509Store(StoreName.My,
    StoreLocation.CurrentUser);
                certificateStore.Open(OpenFlags.ReadOnly);
                X509Certificate2Collection certs =
    certificateStore.Certificates.Find(X509FindType.FindByThumbprint,
                    certThumbprint, false);
    
                if (certs.Count == 0)
                {
                    Console.WriteLine("Couldn't find the certificate with
    thumbprint:" + certThumbprint);
                    throw new DataServiceException(500,"Server Error", "no
    certificato","en-EN",null);
    
                    return;
                }
    
    


    io credo che il problema sia nel

    StoreName.My,
    StoreLocation.CurrentUser
    

    Qualche consiglio

     

     

All Replies

  • Wednesday, January 11, 2012 3:16 PM
     
      Has Code

    mi sono probabilmente imbattuto nella soluzione... stasera la provo

    il codice di partenza è

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


  • Thursday, January 12, 2012 8:27 AM
     
     Answered Has Code

    si il codice di riferimento è all'incirca quello precedente. io ho usato questo per il mio WCF che permette di lanciare o eliminare deploy

    const string certName = "xxxx.xxxx.pfx";
                    const string password = "xxxxx";
    
                    // load certificate
                    var manifestResourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(certName);
                    if (manifestResourceStream == null)
                    {
                        throw new DataServiceException(500,"Server Error", "no certificato","en-EN",null);
                        return;
                    }
    
                    var bytes = new byte[manifestResourceStream.Length];
                    manifestResourceStream.Read(bytes, 0, bytes.Length);
    

    il certificato deve essere incluso nel progetto come embeded resource

  • Thursday, January 19, 2012 2:06 PM
    Owner
     
     

    Ciao Chida Nirio,

    Vorrei ringraziarti per aver condiviso con la community il codice che hai usato nel tuo scenario. Sarà davvero utile per altri utenti con lo stesso problema.

    Buono sviluppo!


    Irina Turcu

    Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e approfondire la loro conoscenza dei prodotti e tecnologie Microsoft.

    LinkedIn