日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows Azure Storage (10) Windows Azure 上的托管服务CDN (下) Hosted Service

發布時間:2024/7/5 windows 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows Azure Storage (10) Windows Azure 上的托管服务CDN (下) Hosted Service 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  《Windows Azure Platform 系列文章目錄》

?

  使用Blob Service CDN需要將所有需要緩存的文件放入Blob Service中,然后設置CDN指向這個Storage Service。但是大部分情況下,特別是在進行網站開發的情況下,使用的圖片一般都是放在網站目錄下而非Blob Service中。雖然可以將這些文件遷移到Blob中,但是在開發的時候還是需要使用本地文件,實際操作起來還是比較費時費力的。另外,基于Blob Service的CDN只能緩存靜態文件,如果應用程序需要緩存一些動態的內容,比如緩存某個頁面的輸出該怎么辦呢?為了解決上述問題,Windows Azure平臺提供了基于Hosted Service的CDN服務。

  我將會給大家介紹如何使用Windows Azure平臺上的Hosted Service。

  首先,我們打開Visual Studio 2012,新建一個Cloud Solution,命名為AzureCDN。添加一個ASP.NET的Web Role。

  然后在Web Role Project下增加,添加一個名為"CDN"的文件夾(大小寫不敏感)。在這個文件夾里我們先增加1張圖片Moon,然后增加文件夾msft,在msft文件夾里增加3張圖片。

  請注意:Windows Azure Hosted CDN服務將使“/cdn”文件夾下所有內容啟用CDN。我們必須把所有需要CDN服務的內容(圖片,css,文檔等)復制到cdn文件夾里。

  然后我們打開項目中的Default.aspx頁面。添加2個image控件:分別為imgBlob和imgCDN。圖片的來源分別指向Azure Storage Blob中和CDN Url。

  

  然后我們在Default.aspx.cs的Page_Load函數里,增加如下代碼:

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Microsoft.WindowsAzure.ServiceRuntime;namespace WebRole1 {public partial class _Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){imgBlob.ImageUrl = RoleEnvironment.GetConfigurationSettingValue("imgBlobURL");imgCDN.ImageUrl = RoleEnvironment.GetConfigurationSettingValue("imgCDNURL");}} }

  主要的功能是:從ServiceConfiguration.cscfg里讀取相關的圖片超鏈接信息,然后加載到imgBlob和imgCDN控件。

  然后我們修改WebRole.cs中的代碼,具體內容如下:

using System; using System.Collections.Generic; using System.Linq; using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.Diagnostics; using Microsoft.WindowsAzure.ServiceRuntime; using System.Diagnostics;namespace WebRole1 {public class WebRole : RoleEntryPoint{public override bool OnStart(){// For information on handling configuration changes// see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.// 當用配置文件中ConfigurationSettings時必須調用CloudStorageAccount.SetConfigurationSettingPublisher// 來說明當配置文件在發布后被更改時將采取何種操作CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) =>{configSetter(RoleEnvironment.GetConfigurationSettingValue(configName));RoleEnvironment.Changed += (sender, arg) =>{if (arg.Changes.OfType<RoleEnvironmentConfigurationSettingChange>().Any((change) => (change.ConfigurationSettingName == configName))){if (!configSetter(RoleEnvironment.GetConfigurationSettingValue(configName))){RoleEnvironment.RequestRecycle();}}};});RoleEnvironment.Changing += RoleEnvironmentChanging;return base.OnStart();}private void RoleEnvironmentChanging(object sender, RoleEnvironmentChangingEventArgs e){// If a configuration setting is changingif (e.Changes.Any(change => change is RoleEnvironmentConfigurationSettingChange)){// Set e.Cancel to true to restart this role instancee.Cancel = false;}}} }

  這些代碼的主要功能是:如果CSCFG發生變化的時候將e.Cancel設置為False,不需要重啟Web Role。

  然后我們修改CSCFG的配置信息,增加imgCDNURL和imgBlobURL,Value分別是圖片的http website。我使用上一章已經上傳成功的圖片WindowsAzure.png。

  注意:如果對讀取Azure配置文件不熟悉的網友,請參考我的這篇文章Windows Azure Platform (十四) Configuration的變更和通知機制

  

  然后我們使用Visual Studio發布這個Azure Solution,服務名稱和Url都使用LeiAzureCDN,WebSite的發布過程略。

  發布成功后,我們瀏覽發布成功的Azure Website:http://leiazurecdn.cloudapp.net/。圖片加載成功,效果如下:

  實際上加載的2張圖片都是來自于Azure Blob, url為?http://threestone.blob.core.windows.net/gallery/WindowsAzure.png,我們暫時還未使用Azure Hosted Service CDN服務。

?

  那我們開始配置Azure Hosted Service CDN的功能。首先登陸Windows Azure Management Portal:

  然后我們選擇"CDN"-->選中"LeiAzureCDN"(我們之前創建的托管站點)-->選擇"新建終結點":

  在彈出的"新建CDN終結點里",

1.啟用CDN:啟用或不啟用CDN。

2.HTTPS:如果我們需要使用HTTPS連接,選中它。

3.查詢字符串:如果我們緩存托管服務內容或使用查詢字符串來指定被恢復的內容,選中它。

  CDN新建終結點成功后如下圖。請注意觀察LeiAzureCDN的CDN HTTP終結點地址是http://az274005.vo.msecnd.net

  等待20分鐘......讓CDN在全世界傳播

  

  (20分鐘后...)我們使用已經發布成功的LeiAzureCDN的HTTP終結點是:http://az274005.vo.msecnd.net

  請注意觀察AzureCDN這個Cloud Solution Web Role根目錄下的CDN的文件夾內容:

  • 發布成功的CDN url是http://[yourcdnurl]/[yourfilename]。
  • 我們發布成功的CDN url是http://az274005.vo.msecnd.net。另外moon.jpg是在CDN根目錄下,那真正的url就是http://az274005.vo.msecnd.net/moon.jpg

  • 對于CDN\msft里的圖片來說,真正的url就是http://[YourCdnUrl]/[YourFileName]。對于msft里的WindowsAzure.png來說,CDN URL就是http://az274005.vo.msecnd.net/WindowsAzure.png

?

我們修改AzureCDN的配置部署,修改imgCDNURL的value為CDN URL,我們修改加載CDN\msft\wp7.jpg的圖片

?然后我們用IE重新打開http://leiazurecdn.cloudapp.net/,頁面加載的時候會重新讀取最新的cscfg內容:

  

  

  

?

轉載于:https://www.cnblogs.com/threestone/archive/2012/06/11/2542076.html

總結

以上是生活随笔為你收集整理的Windows Azure Storage (10) Windows Azure 上的托管服务CDN (下) Hosted Service的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。