Tôi hiện đang làm việc trên quy trình triển khai tự động cho dịch vụ được lưu trữ cho Windows Azure. Việc tạo các tệp .cspkg
và .cscfg
hoạt động hoàn hảo bằng cách gọi đến msbuild
. Bây giờ tôi đang viết một ứng dụng giao diện điều khiển .NET nhỏ nên triển khai các tệp này tới Azure bằng cách sử dụng API REST quản lý.Không thể nâng cấp triển khai Azure bằng cách sử dụng API REST quản lý (vấn đề chứng chỉ SSL)
Không có vấn đề gì liên quan đến chính API. Tôi có thể gửi yêu cầu đến API bằng một trong các chứng chỉ quản lý của tôi. Tôi tải lên tệp .cspkg
vào Lưu trữ BLOB Azure và sau đó thử gọi Upgrade Deployment
. Nhưng mỗi khi tôi cố gắng, tôi nhận được một "400 yêu cầu xấu" phản ứng nói rằng giấy chứng nhận với dấu vân tay xy đã không được tìm thấy. Chứng chỉ này là chứng chỉ SSL (không phải chứng chỉ quản lý) Tôi đang sử dụng HTTPS cho tên miền tùy chỉnh của mình (DNS CNAME).
Và bây giờ, toàn bộ điều được thú vị:
Khi tôi triển khai các tập tin bằng cách sử dụng "Xuất bản" lệnh trong Visual Studio của tôi, không có vấn đề. (Tôi đã so sánh các tệp .cscfg
/.cspkg
từ VS và từ đầu ra msbuild
của mình: ngoài một số GUID, chúng giống nhau). Và hơn nữa, sử dụng tính năng Quản lý Silverlight trong trình duyệt của tôi, tôi thậm chí có thể tải lên các tệp đã tạo của mình mà không thể tải lên bằng API.
Khi tôi truy xuất danh sách tất cả chứng chỉ bằng cách sử dụng cuộc gọi List Certificates
, chứng chỉ được cho là bị thiếu có vẻ như ở đó. Tôi cũng có thể truy xuất dữ liệu của mình bằng cách sử dụng cuộc gọi Get Certificate
.
Vậy tại sao Azure cứ nói với tôi rằng chứng chỉ không được tìm thấy khi sử dụng cuộc gọi Upgrade Deployment
? Có ai có kinh nghiệm gì đó tương tự không? Có ai gợi ý cho tôi không? Cảm ơn trước.
P.S .: Điều này là những gì Azure nói khi tôi sử dụng 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 .: Có, từ trong phản ứng là certitficate
, không certificate
.
Tò mò, nhưng bạn nghĩ tên dịch vụ của bạn là gì? ID cá nhân và Tên triển khai đều là các giá trị Guid. Tên dịch vụ được lưu trữ là giá trị DNS thực tế (luôn được hạ thấp). Có tên nào khác (nhãn?). Nếu bạn sử dụng UpgradeDeployment, bạn cần Tên triển khai (guid), nếu không bạn có thể sử dụng * BySlot và trỏ đến một khe cụ thể. – dunnry
Tên của dịch vụ không liên quan đến ID cá nhân hoặc tên triển khai. Các tham chiếu này đề cập đến * triển khai * và thay đổi bất cứ khi nào bạn tạo triển khai mới. Nhưng như bạn có thể thấy trong tài liệu, API cần tên dịch vụ ngay cả khi tôi muốn nâng cấp vùng triển khai hoặc triển khai mà tôi có thể xác định bằng GUID.Bạn cũng có thể phỏng đoán rằng từ mẫu URI mà tôi đã chỉ định trong câu trả lời của tôi, với thực tế là không có phần tùy chọn nào trong URI. Xem [screenshot] (http://dl.dropbox.com/u/17554533/azure.png) của tôi để kiểm tra xem "tên dịch vụ" và "tên DNS" có ý nghĩa gì đối với tôi. – fero
Tôi đã hỏi tên bạn đang cố gắng sử dụng và phác thảo các kết hợp duy nhất có thể. Tôi đoán cổng thông tin có thể gây nhầm lẫn. May mắn thay, bạn luôn có thể sử dụng đầu ra API để điều khiển đầu vào và không phải đoán. – dunnry