初始化部署以後,你需要繼續維護和更新你的站點。本章節将向你展示一個不包括資料庫改變的部署更新流程。(下一章節将展示資料庫改變的部署更新流程。)
提醒:如果根據本章節所做的操作出現錯誤資訊或一些功能不正常,請務必check Troubleshooting頁面。
<b>修改代碼</b>
為你的程式做一個簡單的修改,在Instructors 清單頁添加一個功能,一般選擇一個Instructor的時候能夠顯示該Instructors 的所有課程courses。
在Instructors頁面可以看到每個記錄有個Select連接配接,點選之後除了行會變灰色,其它什麼都沒有做。

添加代碼,當點選Select連接配接的時候顯示該instructor的課程courses。
在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>
重新運作該頁面,選擇一個instructor,你将看到一個該instructor的所有課程courses清單。
<b>部署到測試環境</b>
部署到測試環境,隻需要簡單的重複步驟one-click釋出就行了。
Solution Configurations下拉菜單裡選擇Test build配置,在Publish profile下拉菜單裡選擇Test,然後點選Publish Web。
如果你自定義了你的Visual Studio使這些工具欄的這些設定不能用的話,請選擇配置管理器Configuration Manager裡的Active solution configuration(從Build菜單裡選擇Configuration Manager),在Publish Web對話框裡選擇Test profile(Solution Explorer裡右鍵 ContosoUniversity項目,選擇Publish) ,點選Publish。
點選Publish以後,Visual Studio會在Output視窗顯示部署成功的資訊。
現在可以通過http://localhost/ContosoUniversity/Instructors.aspx通路了,點選 一個Select連接配接驗證修改是否生效。
之後,你需要做一些回歸測試(測試新修改不會對其它的功能産生影響)。本章節你可以忽略這個步驟直接部署到生産環境。
<b>預防生産環境重新初始化資料庫</b>
在生産環境中第一次部署之後,已經有了真實使用者資料,如果修改以後還使用以前的部署設定的話,那就會把資料庫重新初始化,真實的使用者資料将被清空。由于SQL Server Compact資料庫是存放在App_Data檔案夾下的檔案,是以更新部署隻需要防止App_Data不背重新部署就行了。
打開Project Properties視窗,點選Package/Publish Web頁籤。確定Configuration下拉菜單的選項是Active (Release)或Release。選擇Exclude files from the App_Data folder,然後儲存關閉。
確定測試的配置也是一樣的:修改Configuration為Test然後選擇Exclude files from the App_Data folder。
<b>部署更新期間防止使用者通路</b>
你這次的修改是一個非常簡單的修改,如果修改很多的話,那在部署結束之前使用者還在通路的話,将會看到不可思議的錯誤結果。可以使用app_offline.htm檔案來防止這種情況。當你在根目錄上次名稱為app_offline.htm 檔案的時候,IIS将自動讓該站點停運,并且顯示該頁面。是以,合理的部署步驟是,上傳app_offline.htm,部署,部署結束以後删除app_offline.htm 檔案。
Solution Explorer裡右鍵解決方案(不是項目),選擇New Solution Folder。
檔案夾命名為SolutionFiles,在裡面建立一個名為app_offline.htm的頁面,替換成如下内容:
<!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檔案或者使用控制台裡的File Manager工具上傳。本章節使用File Manager來示範。
打開控制台選擇File Manager,選擇contosouniversity.com,然後選擇wwwroot,點選Upload。
在Upload File對話框選擇app_offline.htm檔案,然後上傳。
通路網站,這時候你看到首頁顯示的是app_offline.htm頁面的内容了。
現在,可以安心地将程式部署到生産環境了。
(該教程不更新部署的時候,在Publish profile裡應該選擇Leave Extra files on destination (do not delete)選項,如果不選,會删除生産環境所有不需要的檔案,是以部署之前,確定有一個app_offline.htm檔案的備份,因為可能在你想删除的時候Web Deploy已經将它删除了。)
<b>部署到生産環境</b>
在Solution Configurations下拉菜單,選擇Release build配置,并且Publish profile裡選擇Production,然後點選Publish Web。
Visual Studio将部署了修改後的程式,然後輸入消息到Output視窗。
在驗證是否是成功的部署之前,你需要先将app_offline.htm檔案删除。
重新回到控制台的File Manager程式選擇contosouniversity.com->wwwroot,選擇app_offline.htm然後點選Delete删除。
打開網站上的Instructors.aspx頁面,選擇一個記錄上的Select連接配接,驗證是否成功部署了修改内容。
至此,你已經成功部署了一個沒有資料庫改變的更新程式。下一章節展示給你的是如何部署一個資料庫更新。
本文轉自 wws5201985 51CTO部落格,原文連結:http://blog.51cto.com/wws5201985/735602,如需轉載請自行聯系原作者