微软ASP.NET网站部署指南(8):部署Code-Only更新

1.  综述

初始化部署以后,你须要继续维护和更新你的网站。本章节将向你展示一个不包含数据库改变的部署升级流程。(下一章节将展示数据库改变的部署升级流程。)

提醒:假设依据本章节所做的操作出现错误信息或一些功能不正常的话,请务必check Troubleshooting页面。

2.  改动代码

为你的程序做一个简单的改动,在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列表。

3.  部署到測试环境

部署到測试环境,仅仅须要简单的反复步骤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连接验证改动是否生效。

之后。你须要做一些回归測试(測试新改动不会对其他的功能产生影响)。

本章节你能够忽略这个步骤直接部署到生产环境。

4.  预防生产环境又一次初始化数据库

在生产环境中第一次部署之后。已经有了真有用户数据。假设改动以后还使用曾经的部署设置的话,那就会把数据库又一次初始化,真实的用户数据将被清空。

因为SQL Server Compact数据库是存放在App_Data目录下的文件,所以升级部署仅仅须要防止App_Data不背又一次部署即可了。

打开Project Properties窗体。点击Package/Publish Web选项卡。确保Configuration下拉菜单的选项是Active (Release)Release。选择Exclude files from the App_Data folder。然后保存关闭。

确保測试的配置也是一样的:改动ConfigurationTest然后选择Exclude files from the App_Data folder

5.  部署升级期间防止用户訪问

你这次的改动是一个非常easy的改动,假设改动非常多的话,那在部署结束之前用户还在訪问的话,将会看到不可思议的错误结果。能够使用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已经将它删除了。)

6.  部署到生产环境

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连接,验证是否成功部署了改动内容。

至此,你已经成功部署了一个没有数据库改变的升级程序。下一章节展示给你的是怎样部署一个数据库更新。

时间: 2024-11-05 16:30:56

微软ASP.NET网站部署指南(8):部署Code-Only更新的相关文章

微软ASP.NET网站部署指南(9):部署数据库更新

1.  综述 无论什么时候,程序都有可能像代码更新一样更新数据库.本章节你将进行数据库改动,測试.然后部署到測试环境和生产环境. 提醒:假设依据本章节所做的操作出现错误信息或一些功能不正常的话,请务必check Troubleshooting页面. 2.  给表加入新列 本小节,将改动Student和Instructor实体共同的基类Person类.加入一个birth date字段,也要在展示页面的表格上加入一个新列. 在ContosoUniversity.DAL项目,打开Person.cs在类

微软ASP.NET网站部署指南(2):部署SQL Server Compact数据库

1. 综述 对于数据库訪问,Contoso University程序要求以下的软件必须随程序一起部署.由于不属于.NET Framework: SQL Server Compact (数据库引擎) ASP.NET Universal Providers (启用ASP.NET membership以使用SQL Server Compact) Entity Framework 4.1 (Code First) 2个数据库的数据库结构和相关的一些数据都须要部署.通常.开发系统的时候都会有一些測试数据,

微软ASP.NET网站部署指南(3):使用Web.Config文件的Transformations

1. 综述 大多数程序里都会在Web.config里设置參数,而且在部署的时候须要更改. 每次都手工更改这些配置非常乏味,也easy出错. 该章节将会告诉你假设通过自己主动化更新Web.config文件来避免这些问题. 2. Web.config Transformations 与Web Deploy Parameters 有2种方式来自己主动化更新Web.config文件的设置:Web.config transformations和Web Deploy parameters. Web.conf

四 Lync Server 2013 部署指南-前端部署(1)

4.1.Lync先决条件安装 部署Lync Server 2013的前端服务器,我们需要在做前端服务器的机器上安装一些Lync必备的一些组件,具体如下: 1.安装.netframework 4.5 2.安装powershell 3.0 3.安装消息列队和桌面体验: 重启服务器以完成以上组件的安装,如下图: 4.再安装IIS的相关组件: 运行Windows Powershell,输入以下命令: Import-Module ServerManager 5.安装IIS相关组件: Add-Windows

四 Lync Server 2013 部署指南-前端部署(2)

4.3.Lync 2013部署 运行Lync2013安装程序,点击"安装或更新Lync Server 系统" 1.安装本地配置存储" 执行命令成功; 2.安装Lync Server组件; 下一步,执行安装直至完成,大概30分钟,如下图; 完成后,继续进行下一步操作. 3.请求.安装和分配证书,如下图: 请求证书; 下一步,选择立即发送: 下一步,选择证书颁发机构(CA): 下一步,本环境中没有替代凭据,直接下一步: 下一步,设置证书名称: 下一步,填写组织和地理信息,根据公司

五 Lync Server 2013 部署指南-边缘部署

前一章节已对前端服务器部署完成,内网已可以使用Lync,要能够通过外网使用Lync 2013,我们就需要部署边缘服务器,并将Lync发布到外网. 5.1.系统环境准备与先决条件安装 5.1.1  DNS准备 由于内外网域名不一致,需要在内部DNS服务器添加外部域名区域. 1.        打开DNS服务器,新建区域 选择[主要区域],如下图: 定义新区域的名称: 添加与Lync相关的A记录到新建区域xx.com,如下图: 2.        在xx.local区域添加边缘服务器内部网卡IP地址

《微软Azure云计算开发实战(2):Azure部署ASP.NET MVC 网站

今天我们继续学习Azure的实战开发,<微软Azure云计算开发实战(2):Azure部署ASP.NET MVC 网站. 在你注册完Azure的使用账户以后,下面就可以登陆Azure管理界面了.因为我们后续的开发工作都要用到Azure的资源. Azure作为公有云平台,提供了几乎所有的平台支持,操作系统包括Linux Mac OS Windows,数据库主流的都支持,网站空间,数据库,虚拟主机操作系统 几乎都有.还有流媒体服务,Hadoop集成,Bigtable等. 我们先来学习一下如何部署一个

微软ASP.NET站点部署指南(1):部署介绍

1. 综述 该系列教程指导你如何将一个ASP.NET web 程序部署到第三方的主机提供商机器上.部署的方式用的是Visual Studio的one-click发布.首先部署到开发环境的IIS上进行测试,然后再部署到生产环境(第三方的主机提供商)上. 该系列总共包括11个章节和一个troubleshooting章节:看来内容很多,有点晕吧?其实,生产环境部署的基本流程在本系列里只占很小一部分,但是在现实的环境中,了解一些看似很小但非常重要的信息是非常必要的--例如,设置目标服务器上某个文件夹的权

微软ASP.NET站点部署指南(11):部署SQL Server数据库更新

1. 综述 本章节展示的是如何向完整版SQL Server 数据库部署一个数据库升级.与第9章的数据库升级部署有所不同(第9章是部署到SQL Server Compact数据库). 提醒:如果根据本章节所做的操作出现错误信息或一些功能不正常的话,请务必check Troubleshooting页面. 2. 给表添加新列 这个小节,做一个数据库修改和相应的代码更新,在部署到测试和生产环境之前,先在Visual Studio 里测试.修改内容是给Instructor 实体添加一个OfficeHour