共用方式為


使用 Visual Studio 或 Visual Web Developer 部署具有 SQL Server Compact 的 ASP.NET Web 應用程式:部署僅限程式代碼的更新 - 8/12

Tom Dykstra

下載入門專案

本系列教學課程說明如何使用 Visual Studio 2012 RC 或 Visual Studio Express 2012 RC for Web 部署包含 SQL Server Compact 資料庫的 ASP.NET Web 應用程式專案。 如果您安裝 Web 發行更新,也可以使用 Visual Studio 2010。 如需系列簡介,請參閱 系列的第一個教學課程。

如需示範 Visual Studio 2012 RC 版本之後引進的部署功能的教學課程,示範如何部署 SQL Server Compact 以外的 SQL Server 版本,並示範如何部署至 Azure App 服務 Web Apps,請參閱使用 Visual Studio ASP.NET Web 部署。

概觀

初始部署之後,您維護及開發網站的工作會繼續進行,而且在很久之前,您會想要部署更新。 本教學課程會引導您完成將更新部署至應用程式程式代碼的程式。 此更新不涉及資料庫變更;在下一個教學課程中,您將瞭解部署資料庫變更有何不同。

提醒:如果您在進行教學課程時收到錯誤訊息或某些項目無法運作,請務必檢查 疑難解答頁面

進行程式代碼變更

作為應用程式更新的簡單範例,您會將新增至 Instructors 頁面所選講師所教授的課程清單。

如果您執行 Instructors 頁面,您會發現 網格線中有 [選取 ] 連結,但除了讓數據列背景變成灰色以外,它們不會執行任何動作。

Instructors_page

現在,您將新增程式碼,此程式代碼會在按兩下 [選取] 連結時執行,並顯示所選講師所教授的課程清單。

Instructors.aspx 中,於 ErrorMessageLabel Label 控件後面立即新增下列標記:

<h3>Courses Taught</h3>
<asp:ObjectDataSource ID="CoursesObjectDataSource" runat="server" TypeName="ContosoUniversity.BLL.SchoolBL"
    DataObjectTypeName="ContosoUniversity.DAL.Course" SelectMethod="GetCoursesByInstructor">
    <SelectParameters>
        <asp:ControlParameter ControlID="InstructorsGridView" Name="PersonID" PropertyName="SelectedDataKey.Value"
            Type="Int32" />
    </SelectParameters>
</asp:ObjectDataSource>
<asp:GridView ID="CoursesGridView" runat="server" DataSourceID="CoursesObjectDataSource"
    AllowSorting="True" AutoGenerateColumns="False" SelectedRowStyle-BackColor="LightGray"
    DataKeyNames="CourseID">
    <EmptyDataTemplate>
        <p>No courses found.</p>
    </EmptyDataTemplate>
    <Columns>
        <asp:BoundField DataField="CourseID" HeaderText="ID" ReadOnly="True" SortExpression="CourseID" />
        <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
        <asp:TemplateField HeaderText="Department" SortExpression="DepartmentID">
            <ItemTemplate>
                <asp:Label ID="GridViewDepartmentLabel" runat="server" Text='<%# Eval("Department.Name") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

執行頁面並選取講師。 您會看到該講師所教授的課程清單。

Instructors_page_with_courses

將程式代碼更新部署至測試環境

部署至測試環境是再次執行單鍵發行的簡單事項。 若要讓此程式更快速,您可以使用 [Web One Click Publish ] 工具列。

在 [ 檢視 ] 功能表中,選擇 [工具欄] ,然後選取 [Web One Click Publish]。

Selecting_One_Click_Publish_toolbar

方案總管 中,選取 ContosoUniversity 專案。

[Web One Click Publish] 工具列,選擇 [測試發佈配置檔],然後按兩下 [發佈 Web] (指向左和右箭號的圖示)。

Web_One_Click_Publish_toolbar

Visual Studio 會部署更新的應用程式,而瀏覽器會自動開啟至首頁。 執行 Instructors 頁面,然後選取講師以確認更新已成功部署。

Instructors_page_with_courses_Test

您通常也會進行回歸測試(也就是測試月臺的其餘部分,以確保新的變更不會中斷任何現有的功能)。 但在本教學課程中,您將略過此步驟,並繼續將更新部署至生產環境。

防止將初始資料庫狀態重新部署到生產環境

在實際的應用程式中,使用者會在初始部署之後與您的生產網站互動,且資料庫會填入實時數據。 因此,您不想以初始狀態重新部署成員資格資料庫,這會抹除所有實時數據。 由於 SQL Server Compact 資料庫是 [App_Data] 資料夾中的檔案,因此您必須變更部署設定來避免這種情況,因此不會部署App_Data資料夾中的檔案。

開啟 ContosoUniversity 專案的 [項目屬性] 視窗,然後選取 [套件/發佈 Web] 索引標籤。請確定 [組態] 下拉式方塊已選取 [使用中][發行][發行],選取 [從App_Data資料夾中排除檔案]。

Exclude_files_from_the_App_Data_folder

如果您決定在未來部署偵錯組建,最好對偵錯組建組態進行相同的變更:將 [組態] 變更[偵錯],然後從 [App_Data] 資料夾中選取 [排除檔案]。

儲存並關閉 [ 套件/發佈 Web] 索引標籤

注意

重要

請確定您未 在發佈配置檔中選取目的地 移除其他檔案。 如果您選取該選項,部署程式將會刪除您在已部署網站中App_Data的資料庫,而且會刪除App_Data資料夾本身。

防止使用者在更新期間存取生產網站

您現在部署的變更是單一頁面的簡單變更。 但有時候您會部署較大的變更,在此情況下,如果使用者在部署完成之前要求頁面,網站的行為可能會很奇怪。 若要避免這種情況,您可以使用 app_offline.htm 檔案。 當您將名為 app_offline.htm 的檔案放在應用程式的根資料夾中時,IIS 會自動顯示該檔案,而不是執行您的應用程式。 因此,若要防止在部署期間存取,請將app_offline.htm放在根資料夾中、執行部署程式,然後移除app_offline.htm

方案總管 中,以滑鼠右鍵按兩下方案(不是其中一個專案),然後選取 [新增方案資料夾]。

Creating_a_solution_folder

將資料夾 命名為 SolutionFiles

在新資料夾中,建立名為 app_offline.htmHTML 頁面。 以下列標記取代現有的內容:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Contoso University - Under Construction</title>
</head>
<body>
  <h1>Contoso University</h1>
  <h2>Under Construction</h2>
  <p>The Contoso University site is temporarily unavailable while we upgrade it. Please try again later.</p>
</body>
</html>

您可以使用裝載提供者控制面板中的 FTP 連線或檔案管理員公用程式,將app_offline.htm檔案複製到網站。 在本教學課程中,您將使用 檔案管理員

開啟控制面板,然後選取 [檔案管理員],如同您在部署至生產環境教學課程中所做的一樣。 選取 [contosouniversity.com ],然後選取 wwwroot 以取得應用程式的根資料夾,然後按兩下 [ 上傳]。

Upload_button_in_File_Manager

在 [ 上傳檔案 ] 對話框中,選取 app_offline.htm 檔案,然後按兩下 [ 上傳]。

Upload_dialog_box_in_File_Manager

瀏覽至網站的 URL。 您會看到app_offline.htm頁面現在會顯示,而不是首頁。

App_offline.htm_page_in_production

您現在已準備好部署至生產環境。

將程式代碼更新部署至生產環境

在 [Web One Click Publish] 工具列中,選擇 [生產發佈配置檔],然後按兩下 [發佈 Web]。

Visual Studio 會部署更新的應用程式,並將瀏覽器開啟至網站的首頁。 app_offline.htm檔案隨即顯示。 您必須先移除 app_offline.htm 檔案,才能測試以確認部署成功。

返回控制面板中的 [檔案管理員] 應用程式。 選取 [contosouniversity.com ] 和 [wwwroot],選取 [app_offline.htm],然後按兩下 [ 刪除]。

Deleting_app_offline.htm

在瀏覽器中,開啟公用網站中的 Instructors 頁面,然後選取講師以確認更新已成功部署。

Instructors_page_with_courses_Prod

您現在已部署未涉及資料庫變更的應用程式更新。 下一個教學課程說明如何部署資料庫變更。