2012-07-18 82 views
4

我創建了一個MVC3項目並附加了一個Azure Cloud Service以部署到Azure Web角色。我爲PRODUCTION和TEST創建了兩個.cscfg文件。這兩項服務具有不同的SSL證書和不同的指紋 - 這些指紋都在相應的.cscfg文件中設置。在我的角色中,我設置了https端點併爲SSL證書名稱選擇了正確的配置設置。針對多個SSL證書的Azure Cloud Service配置

問題 - Visual Studio將不會發布到Azure上的Web角色,除非所有.cscfg文件包含完全相同的SSL指紋。如果我在.cscfg文件(生產和測試)的證書不同的指紋它拒絕公佈說:

Error: Certificate: ‘SSLCert’ with Thumbprint: for Role: XXXXX has not been uploaded to the cloud service: XXXXX

如何設置的配置,以允許單獨的SSL證書?

+0

這個項目是用SDK 1.6創建的嗎?我有類似的問題,當我將項目從1.6升級到1.7時,問題就消失了。你也可以嘗試創建一個包,而不是直接發佈。 – astaykov 2012-07-18 21:06:50

+0

我正在運行1.7。 – 2012-07-19 12:30:15

+0

是的,我只是嘗試打包並通過管理門戶上傳。這工作得很好。這是發佈不符合多個配置。謝謝你的提示。這並不方便,但至少我可以將配置分開。 – 2012-07-19 12:35:43

回答

2

我想說這是Windows Azure SDK的一個已知問題,目前正在處理中。我沒有關於修復程序可用性的任何具體細節,因此無法對此進行評論。

上面已經有一些解決辦法然而,如果你想還是解決工具箱中的問題,以手動發佈該數據包,您可以在構建步驟如下所述改造CSDEF/CSCFG配置文件:

http://blogs.msdn.com/b/philliphoff/archive/2012/07/02/transform-windows-azure-service-model-files-during-packaging.aspx

一旦你改變你的配置文件,您仍然可以使用同一個構建/發佈的步驟,你不需要手動發佈。

2

我實現了這個使用Igorek的回答my question here。不如msbuild轉換功能強大,但更易於實現。

的解決方案是創建對應於每個服務配置的.csdef文件。然後,在Azure項目的預生成步驟中,將正確的.csdef文件複製到主.csdef文件中。這些自定義的.csdef文件可以添加到您的解決方案中,但您必須使用文本編輯器手動執行。

我的每個特定的配置,.csdef文件中有兩個我的測試和生產SSL證書,但端點的定義被設置爲使用正確的配置。這是必需的,因爲Visual Studio會抱怨您的.csdef文件中丟失的.cscfg文件中引用的證書。這意味着您必須將兩個SSL證書同時上傳到Azure門戶上的測試和生產服務,但是在部署完成後將使用正確的證書。

0

我使用的簡單解決方案是在我的解決方案中創建兩個獨立的雲項目。我把他們稱爲「手動部署」

當我想用生產許可證發佈到生產,我發佈了在配置文件中正確安裝雲項目文件夾中。質量保證也一樣。我甚至爲本地開發測試製作了一個單獨的雲計劃。雲項目很容易製作,您只需將實際的webrole項目與每個雲項目關聯起來即可開展業務。

+0

我沒有想過這種方法。感謝您的高舉。我會嘗試一下。 – 2012-11-08 14:28:21