2013-05-28 52 views
0

我正在使用WebSites開始使用Windows Azure,現在我正面臨在我的站點中需要Crystal Reports的情況,所以我正在尋找一種方法來安裝Redistribute文件以在我的網頁中使用它來生成報告。有沒有更新雲應用程序而不是重新部署的方法?

我按照這個頁面:

http://dotnetspeak.com/2012/07/running-crystal-reports-on-windows-azure

因此而不是一個簡單的網站,我會使用的雲應用程序。不幸的是,我經常更新我的網站(在Windows Azure項目中的角色)。

每次我更新我的MVC項目時,是否需要將我的雲應用程序的所有時間重新部署?因爲它需要很長時間(如一個小時,因爲我包含一個MSI安裝程序)

謝謝

回答

0

除非你建立一些自定義擴展到應用程序中的一些非常強大的依賴注入,是的,你必須重新部署。

+0

你認爲我能做什麼?我的意思是,我需要速度來更新我的MVC4項目(WebRole)和cloudapp以使CrystalReports運行時。我找不到另一個建議:( –

+0

您正在使用**網站**或**網絡角色**?我看到您發佈衝突的信息在這一點上,這是重要的。 – Jaxidian

+0

最初,網站 –

0

編輯:再次重新閱讀您的問題後,我意識到您正在使用Windows Azure網站。

完成這個正確的方法是使用webrole而不是網站

你需要做的是安裝程序存儲在雲存儲一個blob。

然後,您可以從blob下載Azure啓動任務並執行安裝程序。

如果可能,您還可以使用WebPICmdline(即Web平臺安裝程序命令行)從啓動任務中爲您下載並安裝。

Steve Marx在使用Azure啓動任務方面做了一些工作。這裏是他們http://blog.smarx.com/posts/windows-azure-startup-tasks-tips-tricks-and-gotchas

0

之一添加位@羅伯特的回答是:如果MSI的實際執行走一個小時,那麼這是不是一個很好的用例的Web /輔助角色。任何需要超過幾分鐘的事情都不適合無狀態可擴展模型。如果是這種情況,則應考慮運行虛擬機以運行Crystal Reports。然後,你可以使用你的網絡角色的一切。

另一方面,如果一小時的時間大部分被上傳的MSI所消耗,那麼我完全符合Robert的要求:將MSI存儲在一個blob中,然後將其下載到您的角色啓動時的實例。

0

我建議將您的單個雲項目拆分爲兩個 - 僅適用於Crystal Reports。通過這種方式,您可以將其與MVC站點分開部署。您也可以在啓動任務中構建額外的智能,可能檢查是否已安裝Crystal。不過,我認爲拆分起來就足夠好了你

0

通常情況下,更新過程不會導致你的webrole的完全重新的形象,只有爲approot被破壞了!在這裏,你可以找到關於什麼是對更新和部署發生了非常詳細的資料:http://msdn.microsoft.com/en-us/library/windowsazure/hh472157.aspx

這是什麼意思你的問題?代碼部署是一個「就地更新」過程。如果您將Crystal Reports安裝在Drive C:或D中:它不會在每個部署中被破壞。

在您的啓動任務中,您必須檢查軟件是否已安裝。如果沒有安裝,只需安裝它,如上面提到的驅動器C:或D:

編輯:我得到了一點:你的更新過程需要很長的時間,因爲你的MSI的文件大小?如果是這樣,我還建議將MSI上傳到Blob-Storage。

相關問題