Windows Azure Cloud Service (39) 如何將現有Web應用遷移到Azure PaaS平台

來源:互聯網
上載者:User

標籤:style   blog   http   ar   io   os   使用   sp   for   

  《Windows Azure Platform 系列文章目錄》

 

  本文將簡單介紹,如何將企業內現有的ASP.NET應用程式遷移到Azure PaaS平台。

  因為在遷移過程中,可能需要對現有的應用重新做架構設計,本文只是進行簡單的介紹,開拓思路,具體的應用需要具體研究分析。

 

  1.首先需要下載Azure SDK。使用Visual Studio建立新的Cloud Service,將現有的ASP.NET應用程式頁麵包含在Cloud Project中。

 

  2.對於使用者會話(Session)進行修改。

  Cloud Service的負載平衡器(Load Balancer)不能保留Session。我們需要將Session儲存到SQL Server或者其他外置的儲存介質上。

  具體可以參考我之前的博文:Windows Azure Cloud Service (13) 多個VM Instance情境下如何處理ASP.NET Session

  裡面的內容有些過時了,總結下來可以有以下幾種方式實現保持會話(Sticky-Session)

  (1)將Session儲存在SQL Server Table中,後期對於資料表的維護,需要使用者自己來實現相關的商務邏輯。

  (2)將Session儲存在Cache中。比如Cloud Service的In-bound Cache,或者是海外Azure的Redis Cache

 

  3.將需要調用的dll包含在Cloud Project中,並且將屬性中的"Copy to Output Directory"設定成"Copy always"。

  這樣,需要被調用的dll會被直接打包到CSPKG中,在部署的時候上傳到Azure雲端進行調用。

 

  4.將需要安裝的第三方軟體,包含在Cloud Project中,並且將屬性中的"Copy to Output Directory"設定成"Copy always"。

  在ServiceDefinition節點裡添加Startup任務,CMD檔案中執行"靜默"安裝。

  Azure PaaS平台是非持久化VM,任何通過遠端桌面安裝的軟體都是無效的。我們需要將第三方軟體包含在Cloud Project中,在部署的時候上傳到Azure雲端。

  Startup的功能是,在每次PaaS VM被重設的時候,執行CMD命令,將第三方軟體在新建立的PaaS VM進行安裝。

  "靜默"安裝的目的是,直接安裝完畢,不需要進行任何的配置。

   具體可以參考之前的博文:Windows Azure Cloud Service (22) 使用Startup註冊COM組件(上)

 

  5.將檔案的上傳下載儲存在Azure Storage中

  一般情況下,用戶端將檔案從本地上傳至伺服器端後,檔案是儲存在伺服器端的本地磁碟裡的。

  但是Azure PaaS是非持久化的VM,任何儲存在本地磁碟的檔案都會有丟失的風險。我們需要將伺服器的檔案讀寫的API修改為對於Azure Storage的操作,將檔案儲存在Azure Storage中。

 

  6.伺服器端系統時間的修改

  一般情況下,伺服器端的時區是UTC+8時區,顯示的時間是北京時間。

  Azure PaaS的時區是UTC時區,如果我們在PaaS層調用系統時間,會與北京時間有差距。

  一般性有兩種解決方案:

  (1)在StartUp任務中的CMD命令中,將當前PaaS VM的時區設定為UTC+8時區

  (2)在Azure Cloud Project中,將獲得當前系統時間的代碼修改為,獲得當前UTC+8時區的時間

 

  7.將Cloud Project的web.config配置修改到Azure CSCFG和CSDEF中

  在傳統的ASP.NET應用程式裡,我們讀取的設定檔一般都是放在Web.config,並且通過

  System.Configuration.ConfigurationSettings.AppSettings["SettingName"]來讀取設定檔。

  在Windows Azure裡,我們也可以將設定檔寫入Web.config裡。但是因為我們的Web App其實是Azure VM遠程託管啟動並執行,如果需要修改設定檔的話我們不得不遠程登入案頭,然後再修改IIS下的Web.config檔案。管理起來非常複雜。

  所以在一般情況下,Windows Azure項目的設定檔是寫到CSCFG檔案裡的。然後通過RoleEnvironment.GetConfigurationSettingValue("cscfgName")來讀取。

  這樣我們就可以直接通過配置部署視窗進行修改,而不需要遠端桌面修改網站的Web.config或者重新發布Azure網站了。

  具體可以參考:Windows Azure Cloud Service (9) Configuration的變更和通知機制

 

  8.將Web應用的商務邏輯拆分到Web Role或Worker Role中

  在傳統的ASP.NET的應用程式裡,最上層顯示和複雜邏輯都是包含在一個Web Applicatio中的。

  我們可以針對實際的應用情況,將最上層顯示邏輯放在Web Role,後端的負載業務處理放在Worker Role中。實現最上層顯示和商務邏輯的拆分。

 

 

  本博-三石Blog(下文簡稱本博),在本部落格文章結尾處右下腳未註明轉載、來源、出處的作品(內容)均為本博原創,本站對於原創作品內容對其保留著作權, 請勿隨意轉載,如若真有需要的朋友可以發Mail聯絡我;轉載本博原創作品(內容)也必須遵循“署名-非商業用途-保持一致”的創作共用協議,請務必以文 字連結的形式標明或保留文章原始出處和部落格作者(Lei Zhang)的資訊,關於本博攝影作品請務必注意保留(www.cnblog.com/threestone)等相關浮水印著作權資訊,否則視為侵犯原創著作權 行為;本博謝絕商業網站轉載。著作權,禁止一切有違中華人民共和國著作權保護法及相關法律和本博(法律)聲明的非法及惡意抄襲。

Windows Azure Cloud Service (39) 如何將現有Web應用遷移到Azure PaaS平台

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.