共用方式為


ASP.NET MVC 4 自訂動作篩選

Web Camp 小組

下載 Web Camps 培訓套件

ASP.NET MVC 提供動作篩選條件,以便在呼叫動作方法之前或之後執行篩選邏輯。 動作篩選是自定義屬性,提供宣告式方法,可將動作前和動作后行為新增至控制器的動作方法。

在此實際操作實驗室中,您會在MvcMusicStore解決方案中建立自定義動作篩選屬性,以攔截控制器的要求,並將月臺的活動記錄到資料庫數據表中。 您可以插入任何控制器或動作,將記錄篩選新增至任何控制器或動作。 最後,您會看到顯示訪客清單的記錄檢視。

此實際操作實驗室假設您具備 ASP.NET MVC 的基本知識。 如果您之前未使用過 ASP.NET MVC,建議您 ASP.NET MVC 4 基本概念實際操作實驗室。

注意

所有範例程式代碼和代碼段都包含在 Web Camp 訓練套件中,可從 Microsoft-Web/WebCampTrainingKit 版本取得。 此實驗室特定的專案可在MVC 4 自定義動作篩選 ASP.NET 取得。

目標

在此實際操作實驗室中,您將瞭解如何:

  • 建立自定義動作篩選屬性以擴充篩選功能
  • 將自訂篩選屬性插入至特定層級
  • 全域註冊自定義動作篩選

必要條件

您必須有下列專案才能完成此實驗室:

設定

安裝程式碼片段

為方便起見,您將在本實驗中管理的大部分程式碼都以 Visual Studio 程式碼片段的形式提供。 若要安裝程式碼片段,請執行 .\Source\Setup\CodeSnippets.vsi 檔案。

如果您不熟悉 Visual Studio 代碼段,而且想要瞭解如何使用這些代碼段,您可以參閱本檔中的附錄「附錄 C:使用代碼段」。


練習

此實際操作實驗室是由下列練習所組成:

  1. 練習 1:記錄動作
  2. 練習 2:管理多個動作篩選

完成此實驗室的估計時間: 30 分鐘

注意

每個練習都附有一個 End 資料夾,其中包含完成練習後應獲得的結果解決方案。 如果您需要其他幫助來完成練習,您可以使用此解決方案作為指南。

練習 1:記錄動作

在此練習中,您將瞭解如何使用 ASP.NET MVC 4 篩選提供者來建立自定義動作記錄篩選。 為此,您會將記錄篩選器套用至 MusicStore 網站,以記錄所選控制器中的所有活動。

篩選條件會擴充 ActionFilterAttributeClass 並覆寫 OnActionExecuting 方法來攔截每個要求,然後執行記錄動作。 ASP.NET MVC ActionExecutingContext 類別 會提供 HTTP 要求、執行方法、結果和參數的內容資訊。

注意

ASP.NET MVC 4 也有您可以使用的預設篩選提供者,而不需要建立自定義篩選。 ASP.NET MVC 4 提供下列類型的篩選:

  • 授權 篩選,可決定是否執行動作方法,例如執行驗證或驗證要求的屬性。
  • 動作 篩選,其會包裝動作方法執行。 此篩選可以執行其他處理,例如提供額外的數據給動作方法、檢查傳回值,或取消執行動作方法
  • 結果 篩選條件,其會包裝 ActionResult 對象的執行。 此篩選可以執行結果的其他處理,例如修改 HTTP 回應。
  • 例外 狀況篩選條件,會在動作方法中擲回未處理的例外狀況時執行,從授權篩選開始,並結束執行結果。 例外狀況篩選可用於記錄或顯示錯誤頁面等工作。

如需篩選提供者的詳細資訊,請造訪此 MSDN 連結:(https://msdn.microsoft.com/library/dd410209.aspx) 。

關於MVC音樂市集應用程式記錄功能

此音樂市集解決方案有新的網站記錄 數據模型數據表 ActionLog,其中包含下列欄位:接收要求、呼叫動作、用戶端 IP 和時間戳的控制器名稱。

數據模型。ActionLog 數據表。

數據模型 - ActionLog 數據表

解決方案會針對可在MvcMusicStores/Views/ActionLog 找到的動作記錄檔提供 ASP.NET MVC 檢視:

動作記錄檢視

動作記錄檢視

有了這個給定的結構,所有工作都會著重於中斷控制器的要求,並使用自定義篩選來執行記錄。

工作 1 - 建立自定義篩選以攔截控制器的要求

在這項工作中,您將建立將包含記錄邏輯的自定義篩選屬性類別。 為此,您將擴充 ASP.NET MVC ActionFilterAttribute 類別,並實作介面 IActionFilter

注意

ActionFilterAttribute 是所有屬性篩選的基類。 它會提供下列方法,在控制器動作的執行前後執行特定邏輯:

  • OnActionExecuting(ActionExecutingContext filterContext):就在呼叫動作方法之前。
  • OnActionExecuted(ActionExecutedContext filterContext):呼叫動作方法之後,在執行結果之前(在檢視轉譯之前)。
  • OnResultExecuting(ResultExecutingContext filterContext):就在執行結果之前(在檢視轉譯之前)。
  • OnResultExecuted(ResultExecutedContext filterContext):執行結果之後(轉譯檢視之後)。

藉由將上述任何方法覆寫到衍生類別,您可以執行自己的篩選程序代碼。

  1. 開啟位於 \Source\Ex01-LoggingActions\Begin 資料夾的 Begin 方案。

    1. 您必須先下載一些遺漏的 NuGet 套件,才能繼續。 為此,請按一下專案功能表並選擇管理 NuGet 套件

    2. 管理 NuGet 套件對話方塊中,按一下還原以下載遺失的套件。

    3. 最後,透過點擊 Build | Build Solution 來建立解決方案。

      注意

      使用 NuGet 的優點之一是您不必交付專案中的所有程式庫,從而減少了專案大小。 使用 NuGet Power Tools,透過在 Packages.config 檔案中指定套件版本,您將能夠在第一次執行專案時下載所有必要的程式庫。 這就是為什麼您在從本實驗室打開現有解決方案後必須執行這些步驟的原因。

      如需詳細資訊,請參閱這篇文章: https://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

  2. 將新的 C# 類別新增至 Filters 資料夾,並將其命名 為CustomActionFilter.cs。 此資料夾會儲存所有自訂篩選。

  3. 開啟CustomActionFilter.cs,並新增 System.Web.MvcMvcMusicStore.Models 命名空間的參考

    (代碼段 - ASP.NET MVC 4 自定義動作篩選器 - Ex1-CustomActionFilterNamespaces

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using MvcMusicStore.Models;
    
  4. 從 ActionFilterAttribute 繼承 CustomActionFilter 類別,然後讓 CustomActionFilter 類別實作 IActionFilter 介面。

    //...
    namespace MvcMusicStore.Filters
    {
        public class CustomActionFilter : ActionFilterAttribute, IActionFilter
        {
            //...
        }
    }
    
  5. CustomActionFilter 類別覆寫 OnActionExecuting 方法,並新增必要的邏輯來記錄篩選的執行。 若要這樣做,請在 CustomActionFilter 類別中新增下列醒目提示的程序代碼。

    (代碼段 - ASP.NET MVC 4 自定義動作篩選 - Ex1-LoggingActions

    public class CustomActionFilter : ActionFilterAttribute, IActionFilter
    {
        void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
        {
            // TODO: Add your action filter's tasks here
    
            // Log Action Filter call
            using (MusicStoreEntities storeDb = new MusicStoreEntities())
            {
                ActionLog log = new ActionLog()
                {
                    Controller = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName,
                    Action = string.Concat(filterContext.ActionDescriptor.ActionName, " (Logged By: Custom Action Filter)"),
                    IP = filterContext.HttpContext.Request.UserHostAddress,
                    DateTime = filterContext.HttpContext.Timestamp
                };
                storeDb.ActionLogs.Add(log);
                storeDb.SaveChanges();
                OnActionExecuting(filterContext);
            }
        }
    }
    

    注意

    OnActionExecuting 方法使用 Entity Framework 來新增 ActionLog 快取器。 它會使用 filterContext 的內容資訊,建立並填入新的實體實例。

    您可以在 msdn 深入瞭解 ControllerContext 類別

工作 2 - 將程式代碼攔截器插入存放區控制器類別

在這項工作中,您會將自定義篩選插入所有要記錄的控制器類別和控制器動作, 以新增自定義篩選。 為了本練習的目的,Store Controller 類別會有記錄。

ActionLogFilterAttribute 自定義篩選器執行的 OnActionExecuting 方法會在呼叫插入的專案時執行。

您也可以攔截特定的控制器方法。

  1. MvcMusicStore\Controllers 開啟 StoreController,並新增 Filters 命名空間的參考:

    using System.Linq;
    using System.Web.Mvc;
    using MvcMusicStore.Models;
    using MvcMusicStore.Filters;
    
  2. 將自定義篩選 CustomActionFilter 插入 StoreController 類別,方法是在類別宣告之前新增 [CustomActionFilter] 屬性。

    ...
    [CustomActionFilter]
    public class StoreController : Controller
    {
        ...
    }
    

    注意

    將篩選插入控制器類別時,也會插入其所有動作。 如果您想要只對一組動作套用篩選條件,則必須將 [CustomActionFilter] 插入其中每一個動作:

    [CustomActionFilter]
    public ActionResult Index()
    {
      ...
    }
    
    [CustomActionFilter]
    public ActionResult Browse(string genre)
    {
      ...
    }
    

工作 3 - 執行應用程式

在這項工作中,您將測試記錄篩選器是否正常運作。 您將啟動應用程式並流覽市集,然後檢查記錄的活動。

  1. F5 執行應用程式。

  2. 瀏覽至 /ActionLog 以檢視記錄檢視初始狀態:

    顯示頁面活動前動作記錄狀態的螢幕快照。

    頁面活動前的記錄追蹤器狀態

    注意

    根據預設,它一律會顯示在擷取功能表現有內容類型時產生的一個專案。

    為了簡單起見,我們會在每次執行應用程式時清除 ActionLog 數據表,因此只會顯示每個特定工作驗證的記錄。

    您可能需要從 Session_Start 方法中移除下列程式代碼(在 Global.asax 類別中),才能儲存存放區控制器內執行之所有動作的歷程記錄檔。

    // Clean up Logs Table
    MusicStoreEntities storeDB = new MusicStoreEntities();
    foreach (var log in 
    
    storeDB.ActionLogs.ToList())
    {
       storeDB.ActionLogs.Remove(log);
    }
    
    storeDB.SaveChanges();
    
  3. 單擊功能表中的其中 一個 [內容類型 ],然後在那裡執行一些動作,例如流覽可用的專輯。

  4. 流覽至 /ActionLog ,如果記錄檔是空的,請按 F5 重新整理頁面。 檢查您的造訪是否已追蹤:

    顯示動作記錄檔的螢幕快照,您可以在其中確認您的造訪。

    記錄活動的動作記錄檔

練習 2:管理多個動作篩選

在此練習中,您會將第二個自定義動作篩選新增至 StoreController 類別,並定義將執行這兩個篩選的特定順序。 然後,您將更新程式代碼以全域註冊篩選。

定義篩選的執行順序時,有不同的選項需要考慮。 例如,Order 屬性和 Filters 的範圍:

您可以為每個篩選定義範圍,例如,您可以將控制站範圍內執行的所有動作篩選範圍,以及全域範圍內執行的所有授權篩選。 範圍具有定義的執行順序。

此外,每個動作篩選都有一個 Order 屬性,用來判斷篩選範圍內的執行順序。

如需自定義動作篩選執行順序的詳細資訊,請流覽此 MSDN 文章:(https://msdn.microsoft.com/library/dd381609(v=vs.98).aspx)。

工作 1:建立新的自定義動作篩選

在這項工作中,您將建立新的自定義動作篩選,以插入 StoreController 類別,瞭解如何管理篩選的執行順序。

  1. 開啟位於 \Source\Ex02-ManagingMultipleActionFilters\Begin 資料夾的 Begin 方案。 否則,您可以繼續使用完成上一個練習所獲得的 End 解決方案。

    1. 如果您開啟了提供的 Begin 解決方案,則需要先下載一些缺少的 NuGet 包,然後才能繼續。 為此,請按一下專案功能表並選擇管理 NuGet 套件

    2. 管理 NuGet 套件對話方塊中,按一下還原以下載遺失的套件。

    3. 最後,透過點擊 Build | Build Solution 來建立解決方案。

      注意

      使用 NuGet 的優點之一是您不必交付專案中的所有程式庫,從而減少了專案大小。 使用 NuGet Power Tools,透過在 Packages.config 檔案中指定套件版本,您將能夠在第一次執行專案時下載所有必要的程式庫。 這就是為什麼您在從本實驗室打開現有解決方案後必須執行這些步驟的原因。

      如需詳細資訊,請參閱這篇文章: https://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

  2. 將新的 C# 類別新增至 Filters 資料夾,並將其命名 為MyNewCustomActionFilter.cs

  3. 開啟MyNewCustomActionFilter.cs,並新增 System.Web.Mvc 和 MvcMusicStore.Models 命名空間的參考

    (代碼段 - ASP.NET MVC 4 自定義動作篩選器 - Ex2-MyNewCustomActionFilterNamespaces

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using MvcMusicStore.Models;
    
  4. 以下列程式代碼取代預設類別宣告。

    (代碼段 - ASP.NET MVC 4 自定義動作篩選器 - Ex2-MyNewCustomActionFilterClass

    public class MyNewCustomActionFilter : ActionFilterAttribute, IActionFilter
    {
      void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
    
      {
            // TODO: Add your acction filter's tasks here
    
            // Log Action Filter Call
            MusicStoreEntities storeDB = new MusicStoreEntities();
    
            ActionLog log = new ActionLog()
            {
                 Controller = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName,
                 Action = filterContext.ActionDescriptor.ActionName + " (Logged By: 
    
    MyNewCustomActionFilter)",
                 IP = filterContext.HttpContext.Request.UserHostAddress,
                 DateTime = filterContext.HttpContext.Timestamp
            };
    
            storeDB.ActionLogs.Add(log);
            storeDB.SaveChanges();
    
            this.OnActionExecuting(filterContext);
      }
    }
    

    注意

    這個自定義動作篩選條件幾乎與您在上一個練習中建立的動作篩選相同。 主要差異在於它已 使用這個新類別的名稱更新 「Logged By」 屬性,以識別註冊記錄的篩選。

工作 2:將新的程式代碼攔截器插入 StoreController 類別

在這項工作中,您會將新的自定義篩選新增至 StoreController 類別,並執行解決方案來確認這兩個篩選如何一起運作。

  1. 開啟位於MvcMusicStore\Controllers 的 StoreController 類別,並將新的自定義篩選 MyNewCustomActionFilter 插入 StoreController 類別,如下列程式代碼所示。

    [MyNewCustomActionFilter]
    [CustomActionFilter]
    public class StoreController : Controller
    {
    ...
    }
    
  2. 現在,執行應用程式,以查看這兩個自定義動作篩選的運作方式。 若要這樣做,請按 F5 並等候應用程式啟動。

  3. 流覽至 /ActionLog 以查看記錄檢視初始狀態。

    此螢幕快照顯示動作記錄追蹤器狀態處於初始狀態。

    頁面活動前的記錄追蹤器狀態

  4. 單擊功能表中的其中 一個 [內容類型 ],然後在那裡執行一些動作,例如流覽可用的專輯。

  5. 檢查這次是否為 ;您的造訪次數已追蹤兩次:針對您在 StorageController 類別中新增的每個自定義動作篩選一次。

    此螢幕快照顯示 [動作記錄檔],並追蹤您的造訪次數兩次。

    記錄活動的動作記錄檔

  6. 關閉瀏覽器。

工作 3:管理篩選順序

在這項工作中,您將瞭解如何使用 Order 屬性來管理篩選的執行順序。

  1. 開啟位於MvcMusicStore\Controllers 的 StoreController 類別,並在兩個篩選中指定 Order 屬性,如下所示。

    [MyNewCustomActionFilter(Order = 2)]
    [CustomActionFilter(Order = 1)]
    public class StoreController : Controller
    {
    ...
    }
    
  2. 現在,根據篩選的 Order 屬性值,確認篩選的執行方式。 您會發現具有最小 Order 值 (CustomActionFilter) 的篩選條件是第一個執行的篩選條件。 按 F5 並等候應用程式啟動。

  3. 流覽至 /ActionLog 以查看記錄檢視初始狀態。

    顯示頁面活動前動作記錄的螢幕快照。

    頁面活動前的記錄追蹤器狀態

  4. 單擊功能表中的其中 一個 [內容類型 ],然後在那裡執行一些動作,例如流覽可用的專輯。

  5. 請檢查這次,您的造訪已依篩選的 Order 值來追蹤: CustomActionFilter 記錄' 的第一個。

    顯示動作記錄的螢幕快照,其中包含 CustomActionFilter 所排序的活動。

    記錄活動的動作記錄檔

  6. 現在,您將更新篩選的順序值,並確認記錄順序如何變更。 在 StoreController 類別中,更新 [篩選] 的 [訂單] 值,如下所示。

    [MyNewCustomActionFilter(Order = 1)]
    [CustomActionFilter(Order = 2)]
    public class StoreController : Controller
    {
    ...
    }
    
  7. F5 再次執行應用程式。

  8. 單擊功能表中的其中 一個 [內容類型 ],然後在那裡執行一些動作,例如流覽可用的專輯。

  9. 檢查這次,MyNewCustomActionFilter 篩選所建立的記錄會先出現。

    顯示動作記錄的螢幕快照,其中包含第一個指定篩選所建立的記錄。

    記錄活動的動作記錄檔

工作 4:全域註冊篩選

在這項工作中,您將更新解決方案,以將新的篩選 [MyNewCustomActionFilter] 註冊為全域篩選。 如此一來,應用程式內執行的所有動作都會觸發此動作,而不只是在 StoreController 中執行,如同上一項工作一樣。

  1. StoreController 類別中,從 [CustomActionFilter] 移除 [MyNewCustomActionFilter] 屬性和 order 属性。 這看起來像下面這樣:

    [CustomActionFilter]
    public class StoreController : Controller
    {
    ...
    }
    
  2. 開啟 Global.asax 檔案,並找出 Application_Start 方法。 請注意,每次應用程式啟動時,都會在 FilterConfig 類別內呼叫 RegisterGlobalFilters 方法來註冊全域篩選。

    在 Global.asax 中註冊全域篩選

    在 Global.asax 中註冊全域篩選

  3. 在 App_Start 資料夾中開啟FilterConfig.cs檔案

  4. 新增使用 System.Web.Mvc 的參考;使用 MvcMusicStore.Filters;Namespace。

    using System.Web.Mvc;
    using MvcMusicStore.Filters;
    
  5. 更新 RegisterGlobalFilters 方法,以新增您的自定義篩選。 若要這樣做,請新增醒目提示的程式代碼:

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
        filters.Add(new MyNewCustomActionFilter());
    }
    
  6. F5 鍵執行應用程式。

  7. 單擊功能表中的其中 一個 [內容類型 ],然後在那裡執行一些動作,例如流覽可用的專輯。

  8. 檢查現在 [MyNewCustomActionFilter] 是否正在 HomeController 和 ActionLogController 中插入。

    顯示動作記錄的螢幕快照,您可以在其中檢查新的自定義篩選。

    已記錄全域活動的動作記錄檔

注意

此外,您可以遵循 附錄 B:使用 Web Deploy 發佈 ASP.NET MVC 4 應用程式,將此應用程式部署至 Windows Azure 網站。


摘要

完成此實際操作實驗室,您已瞭解如何擴充動作篩選以執行自定義動作。 您也已瞭解如何將任何篩選插入頁面控制器。 使用了下列概念:

  • 如何使用 ASP.NET MVC ActionFilterAttribute 類別建立自定義動作篩選
  • 如何將篩選插入 ASP.NET MVC控制器
  • 如何使用 Order 屬性管理篩選順序
  • 如何全域註冊篩選

附錄 A:安裝 Visual Studio Express 2012 for Web

您可以使用 Microsoft Web 平台安裝程式安裝 Microsoft Visual Studio Express 2012 for Web 或其他「Express」版本。 以下說明將引導您使用 Microsoft Web 平台安裝程式安裝 Visual studio Express 2012 for Web 所需的步驟。

  1. 移至 /iis/extensions/introduction-to-iis-express/iis-express-overview?linkid=9810169。 或者,如果您已安裝 Web Platform Installer,您可以開啟它,並搜尋產品「Visual Studio Express 2012 for Web with Windows Azure SDK」。

  2. 按一下立即安裝。 如果您沒有 Web 平台安裝程式,您將被重定向到首先下載並安裝它。

  3. Web 平台安裝程式開啟後,按一下安裝開始安裝。

    安裝 Visual Studio Express

    安裝 Visual Studio Express

  4. 閱讀所有產品的授權和條款,然後按一下我接受繼續。

    接受授權條款

    接受授權條款

  5. 等待下載和安裝過程完成。

    安裝進度

    安裝進度

  6. 安裝完成後,按一下完成

    安裝完成

    安裝完成

  7. 按一下退出關閉 Web 平台安裝程式。

  8. 若要開啟 Visual Studio Express for Web,請前往開始畫面並開始編寫 VS Express,然後按一下 VS Express for Web 圖格。

    VS Express Web 圖格

    VS Express Web 圖格

附錄 B:使用 Web Deploy 發佈 ASP.NET MVC 4 應用程式

本附錄將說明如何從 Windows Azure 管理入口網站建立新的網站,併發佈您遵循實驗室取得的應用程式,並利用 Windows Azure 所提供的 Web Deploy 發佈功能。

工作 1 - 從 Windows Azure 入口網站建立新網站

  1. 移至 Windows Azure 管理入口網站並使用與您訂用帳戶相關聯的Microsoft認證登入。

    注意

    透過 Windows Azure,您可以免費裝載 10 ASP.NET 網站,然後在流量成長時進行調整。 您可以在這裡註冊。

    登入 Windows Azure 入口網站

    登入 Windows Azure 管理入口網站

  2. 點選命令列上的新建

    建立一個新網站

    建立一個新網站

  3. 點選計算 | 網站。 然後選擇快速建立選項。 提供新網站的可用 URL,然後按一下建立網站

    注意

    Windows Azure 網站是可在雲端中執行之 Web 應用程式的主機,您可以控制及管理。 [快速建立] 選項可讓您從入口網站外部將已完成的 Web 應用程式部署至 Windows Azure 網站。 它不包括設定資料庫的步驟。

    使用快速建立建立新網站

    使用快速建立建立新網站

  4. 等待新網站建立完成。

  5. 建立網站後,點擊 URL 列下的連結。 檢查新網站是否正常運作。

    瀏覽新網站

    瀏覽新網站

    網站運作中

    網站運作中

  6. 返回入口網站並點擊名稱列下的網站名稱以顯示管理頁面。

    開啟網站管理頁面

    開啟網站管理頁面

  7. 儀表板頁面的快速瀏覽部分下,按一下下載發布設定檔連結。

    注意

    發行 配置檔 包含針對每個啟用的發行方法,將 Web 應用程式發佈至 Windows Azure 網站所需的所有資訊。 發布設定檔包含連接到啟用了發布方法的每個端點並對其進行身份驗證所需的 URL、使用者憑證和資料庫字串。 Microsoft WebMatrix 2,Microsoft Visual Studio Express for WebMicrosoft Visual Studio 2012 支援讀取發佈配置檔,以自動設定這些程式,以將 Web 應用程式發佈至 Windows Azure 網站。

    下載網站發布設定檔案

    下載網站發布設定檔案

  8. 將發布設定檔下載到已知位置。 在本練習中,您將瞭解如何使用此檔案從Visual Studio將Web應用程式發佈至 Windows Azure 網站。

    儲存發布設定檔

    儲存發布設定檔

任務 2 - 設定資料庫伺服器

如果您的應用程式使用 SQL Server 資料庫,您將需要建立 SQL Database 伺服器。 如果您想要部署一個不使用 SQL Server 的簡單應用程式,您可以跳過此任務。

  1. 您將需要一個 SQL Database 伺服器來儲存應用程式資料庫。 您可以從 Windows Azure 管理入口網站中的訂用帳戶,在 Sql Databases | Server 伺服器的儀錶板中檢視 SQL 資料庫 伺服器。 | 如果您尚未建立伺服器,可以使用命令列上的新增按鈕建立伺服器。 記下伺服器名稱和 URL、管理員登入名稱和密碼,因為您將在接下來的任務中使用它們。 暫時不要建立資料庫,因為它將在稍後階段建立。

    SQL Database 伺服器儀表板

    SQL Database 伺服器儀表板

  2. 在下一個任務中,您將測試 Visual Studio 中的資料庫連結,因此您需要將本機 IP 位址包含在伺服器的允許 IP 位址清單中。 為此,請按一下設定,從目前用戶端 IP 位址中選擇 IP 位址並將其貼上到起始 IP 位址結束 IP 位址文字方塊中,然後按一下 新增用戶端 IP 位址確定按鈕 按鈕。

    新增用戶端 IP 位址

    新增用戶端 IP 位址

  3. 用戶端 IP 位址新增至允許的 IP 位址清單後,按一下儲存以確認變更。

    確認更改

    確認更改

任務 3 - 使用 Web 部署發布 ASP.NET MVC 4 應用程式

  1. 返回 ASP.NET MVC 4 解決方案。 在方案總管中,以滑鼠右鍵按一下網站專案並選擇發布

    發布應用程式

    發佈網站

  2. 匯入您在第一個任務中儲存的發布設定檔。

    導入發布設定檔

    導入發布設定檔

  3. 點擊驗證連線。 驗證完成後,按一下下一步

    注意

    當您看到驗證連線按鈕旁邊出現綠色複選標記時,驗證就完成了。

    驗證連接

    驗證連接

  4. 設定頁面的資料庫部分下,按一下資料庫連結文字方塊 (即 DefaultConnection) 旁的按鈕。

    網路部署設定

    網路部署設定

  5. 設定資料庫連結如下:

    • 伺服器名稱中,使用 tcp: 首碼輸入 SQL Database 伺服器 URL。

    • 使用者名稱中輸入您的伺服器管理員登入。

    • 密碼中輸入您的伺服器管理員登入密碼。

    • 輸入新的資料庫名稱。

      設定目標連接字串

      設定目標連接字串

  6. 然後按一下 [確定] 。 當提示建立資料庫時,按一下

    建立資料庫

    建立資料庫

  7. 用於連接到 Windows Azure 中的 SQL 資料庫的連接字串顯示在預設連接文字方塊中。 然後按一下 [下一步]。

    指向 SQL 資料庫的連接字串

    指向 SQL 資料庫的連接字串

  8. 預覽頁面中,按一下發布

    發布 Web 應用程式

    發布 Web 應用程式

  9. 發布過程完成後,您的預設瀏覽器將開啟已發布的網站。

附錄 C:使用代碼段

有了程式碼片段,您就可以輕鬆獲得所需的所有程式碼。 實驗文件會準確告訴您何時可以使用它們,如下圖所示。

使用 Visual Studio 程式碼片段將程式碼插入專案中

使用 Visual Studio 程式碼片段將程式碼插入專案中

使用鍵盤新增代碼段 (僅限 C#)

  1. 將遊標置於要插入程式碼的位置。
  2. 開始輸入程式碼片段名稱 (不含空格或連字元)。
  3. 觀看 IntelliSense 顯示符合的片段名稱。
  4. 選擇正確的程式碼片段 (或繼續輸入,直到選擇整個程式碼片段的名稱)。
  5. 按兩次 Tab 鍵可將程式碼片段插入到遊標位置。

開始輸入片段名稱

開始輸入片段名稱

按 Tab 鍵選擇已反白的片段

按 Tab 鍵選擇已反白的片段

再按 Tab 鍵,片段將會展開

再按 Tab 鍵,片段將會展開

若要使用滑鼠新增代碼段 (C#、Visual Basic 和 XML) 1。 以滑鼠右鍵按一下要插入程式碼片段的位置。

  1. 選擇插入片段,然後選擇我的程式碼片段
  2. 按一下從清單中選擇相關片段。

以滑鼠右鍵按一下要插入程式碼片段的位置,然後選擇插入片段

以滑鼠右鍵按一下要插入程式碼片段的位置,然後選擇插入片段

按一下從清單中選擇相關片段

按一下從清單中選擇相關片段