Actualmente estoy trabajando en un proceso de implementación automatizada para un servicio alojado para Windows Azure. La creación de los archivos .cspkg
y .cscfg
funciona perfectamente utilizando una llamada al msbuild
. Ahora estoy escribiendo una pequeña aplicación de consola .NET que debe implementar estos archivos en Azure usando la API REST de administración.No se puede actualizar la implementación de Azure mediante la API REST de administración (emisión de certificado SSL)
No hay ningún problema relacionado con la API en sí. Puedo enviar una solicitud a la API usando uno de mis certificados de gestión. Subo el archivo .cspkg
a Azure BLOB Storage y luego intento llamar al Upgrade Deployment
. Pero cada vez que lo intento, recibo una respuesta de "400 solicitudes incorrectas" que indica que no se encontró el certificado con la huella digital xy. Este certificado es el certificado SSL (no un certificado de administración) Estoy usando HTTPS para mi dominio personalizado (DNS CNAME).
Y ahora, toda la cosa se pone interesante:
Cuando despliego los archivos usando el comando "Publicar" en mi Visual Studio, no hay ningún problema. (Comparé los archivos .cscfg
/.cspkg
de VS y de mi salida msbuild
: aparte de algunos GUID, son idénticos). Y, además, usando la función de administración de Silverlight en mi navegador, incluso puedo cargar mis archivos generados que no se pudieron subir usando la API.
Cuando recupero una lista de todos los certificados utilizando la llamada List Certificates
, el certificado que se dice que falta está aparentemente allí. También puedo recuperar sus datos usando la llamada Get Certificate
.
Entonces, ¿por qué Azure sigue diciéndome que el certificado no se encontró al usar la llamada Upgrade Deployment
? ¿Alguien experimentó algo similar? Alguien me ha preguntado? Gracias por adelantado.
P.S .: Esto es lo que dice Azure cuando se utiliza la API:
<Error xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Code>BadRequest</Code>
<Message>The certitficate with thumbprint 7b232c4a2d6e3deadbeef120d5dbc1fe8049fbea was not found.</Message>
</Error>
P.P.S .: Sí, la palabra en la respuesta es certitficate
, no certificate
.
Curioso, pero ¿cuál creía que era el nombre de su servicio? La ID privada y el Nombre de implementación son ambos valores Guid. El nombre del servicio alojado es el valor real del DNS (siempre en minúscula). ¿Qué otro nombre hay allí (etiqueta?). Si usa UpgradeDeployment, necesita el Deployment Name (guid); de lo contrario, puede usar * BySlot y apuntar a un determinado espacio. – dunnry
El nombre del servicio no tiene nada que ver con la identificación privada o el nombre de implementación. Estos se refieren a * implementación * y cambian cada vez que crea una nueva implementación. Pero como puede ver en los documentos, la API necesita el nombre del servicio incluso si deseo actualizar una implementación o ranura de implementación que podría identificar utilizando un GUID.También puede inferir eso del patrón de URI que especifiqué en mi respuesta, dado el hecho de que no hay una parte opcional en el URI. Ver mi [captura de pantalla] (http://dl.dropbox.com/u/17554533/azure.png) para verificar qué significan "nombre del servicio" y "nombre DNS". – fero
Estaba preguntando qué nombre estaba tratando de usar y delineando las únicas combinaciones posibles. Supongo que el portal puede ser confuso. Afortunadamente, siempre puedes utilizar la salida API para generar entradas y no tener que adivinar. – dunnry