Service Management API lanciato su azure, problema
-
Wednesday, January 11, 2012 10:07 AM
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 nelStoreName.My, StoreLocation.CurrentUser
Qualche consiglio
All Replies
-
Wednesday, January 11, 2012 3:16 PM
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
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- Marked As Answer by Irina TurcuMicrosoft Contingent Staff, Owner Thursday, January 19, 2012 2:06 PM
-
Thursday, January 19, 2012 2:06 PMOwner
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.




