2012-03-22 107 views
0

我已經回顧了將.NET應用程序部署到Azure中的所有問題,但仍有一些我仍需要了解。 我已經看到並測試了自己,這將使Visual Studio 2010很容易將現有的.NET應用程序發佈並部署到Azure中 - 所有功能和工具都在那裏。將SQL Server部署到Azure的.NET應用程序?

但是,我仍然能夠維護和更新我的原始.NET應用程序,然後在必要時發佈Azure包的更新?我希望持續這樣做,爲我們的客戶提供兩種解決方案 - 公有云解決方案或本地本地.NET解決方案。

其他問題是,我們將從SQL服務器運行.NET應用程序,並且應用程序也會與外部Web服務進行交互。那些持續部署到Azure的人容易,而不是一次性關閉。

編輯:如果以上是不可能的,我只注意到,可以創建一個完整的Windows 2008服務器映像,並在Azure中創建一個虛擬機角色。有沒有人對此有任何評論,因爲我對此不夠了解。這是否可以解決我的問題?

回答

0

如果您的應用程序不是非常複雜,您可以使用相同的代碼爲Windows Azure + SQL Azure和本地服務器+ SQL服務器。假設您不介意添加Windows Azure程序集,這完全可以在本地服務器上運行它,那麼這就是一個Web應用程序。

關於sql azure/sql server,我認爲你只需要改變你的配置中的連接字符串,讓你的代碼鏈接到正確的服務器。

也許您需要一些額外的任務才能完成天藍和本地。您可能需要提供一個文件系統接口,可以根據配置從blob或本地磁盤讀取/寫入文件。因此,在您的業務代碼中,您不會介意在哪裏以及如何處理文件問題。也許你還需要一個配置界面來讀取web.config或cscfg文件的設置。但是,如果你已經把所有配置放在數據庫中,那會更好。

基本上我不認爲這是不可能使用一個代碼基地爲蔚藍和本地。我通過引入一些界面來隔離天藍色的相關操作,從而以這種方式完成了一個項目。只要確保你可以配置/注入天藍色和本地之間不同的東西。

HTH

+0

謝謝 - 非常有幫助 - 更近一步。在.NET中,一旦我創建了Azure部署,似乎我只能在Azure模擬器中運行解決方案,它不會讓我在IIS上運行它。這是我可以輕易改變的東西嗎?你知道嗎? – Gotts 2012-03-23 13:10:00

+0

如果是網絡角色,您可以將啓動應用程序設置爲您的web項目(而不是azure項目),那麼它將在您的IIS或開發主機下運行,就好像您擁有一個普通的ASP.NET應用程序一樣。但是如果你的項目在Azure下使用某些東西,例如存儲,本地資源或天藍色配置,那麼它將會失敗。這就是爲什麼我提到你最好使用一些接口來隔離。但它是一個工作者角色,它必須在Azure開發模擬器下運行。 – 2012-03-25 05:24:10

0

您可以將其部署到Azure。處理它的最好方法是部署到Staging,然後一旦它啓動並運行,在門戶中進行VIP交換。然後,您將在生產環境中運行新軟件包,並且可以停止/刪除正在運行的舊軟件包。

對於Azure中的SQL Server,您應該考慮使用SQL Azure或使用Azure Connect與運行在內部的SQL Server進行通信。或者你也可以使用服務總線。

+0

但是,我可以同時維護我的.net應用程序,然後將更新推送到Azure。問題是我想要對數據庫做同樣的事情 - 即我的.net應用程序應該與SQL服務器通信,而我的天藍色應用程序應該與SQL Azure通信。 – Gotts 2012-03-22 16:05:20

0

我覺得這是你真正的問題:

不過我是仍然能夠保持和更新我原來的.NET 應用程序,然後在必要時發佈更新Azure的 包?我想持續這樣做,作爲 爲我們的客戶提供兩種解決方案的手段 - 公有云解決方案或本地本地.NET解決方案。

這並不是特定於windows azure。你想要的是一個源代碼控制。你可以使用類似TFS的東西來創建相同代碼的不同副本。然後你可以擁有版本歷史的兩個項目的副本。有很多使用源代碼管理的好處,我強烈建議你看看在你工作的每個項目上使用源代碼控制。

+0

我同意源代碼管理很重要,我將在項目中使用它。但我的觀點是,我只想用.NET和Azure的部署包維護一個項目,而不必混淆源代碼。我希望.NET專家能讓我知道這是否仍然有可能,以及這會如何影響到兩個不同數據庫(Azure和SQL服務器)的連接。謝謝 – Gotts 2012-03-23 13:07:47

相關問題