"必须为此必填mysql 修改字段非必填指定值"是什么意思

> PeopleEditor允许客户端输入的同时验证输入的内容
PeopleEditor允许客户端输入的同时验证输入的内容
  我们在开发sharepoint应用的时候,会觉得他的人员选择控件peopleeditor是一个不错的控件,就想要直接的使用它在我们的usercontrol中,但是他本身是不提供验证输入内容的,除非你手动点击控件右下角的【检查名称】图标。有两个办法可以解决,一个就是关闭控件的输入功能  allowtypein="false"   ,只让用户通过选择人员来添加人员,但是这样有的用户觉得不能输入太麻烦了;那就打开输入功能  allowtypein="true",这时候就需要在输入完毕之后点击【检查名称】,然后才能【确定】按钮,提交数据,要不然,提交的没有验证,没有反应,没有提示。看起来很不爽啊!  通过查看页面的源代码,发现在他的【检查名称】图标的a标记的onclick里面有一段javascript代码,是用来实现客户端验证输入的人员是否存在于系统,我就想我们是否可以在【确定】按钮的客户端验证也添加这段脚本,或者让他帮助点击一下那个【检查名称】图标链接呢?这里使用的就是直接在客户端调用那个a标记的onclick方法&script type="text/javascript"&        function clientvalidate() {             var client = document.getElementById("&%=peSelectPeople.ClientID %&" + "_checkNames");            client.click();            var error = document.getElementById("&%=peSelectPeople.ClientID %&" + "_errorLabel");            if (error.innerHTML == "" || error.innerHTML==("必须为此必填字段指定值。"))                return             else                return         } &/script& 
本文地址 :
------分隔线----------------------------您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
Dreamweaver电脑美术基础与实用案例-博思创作室_(2).pdf 142页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:80 &&
你可能关注的文档:
··········
··········
数字艺术新视点 Dreamweaver
电脑美术 基础与实用案例 博思创作室
编著 北 京 内 容简介 本书是一部讲解利用Dreamweaver 进行网页设计与制作的优秀教材,从网页的布局规划入手,系统地
讲解了网页设计和制作的过程,按照网页制作的工作流程带领读者走进网页设计的殿堂。本书结合网站实
例进行编写,集实战性、代表性和完整性于一身,讲解详细,重点突出。通过实例,读者能巩固前面所学
的知识,能起到温故而知新、循序渐进的作用,并且给读者充分的发挥空间,使读者产生成就感,并提高
个人学习的积极性。 本书共分 14 章,各章节都从本章的知识点入手,再配合典型的应用实例,以明晰的操作步骤,使读
者掌握全面的软件技术、应用技巧和达到对软件功能加以融会贯通。 本图书适合网页制作的初学者和想快速提高网页制作综合应用水平的中高级用户使用,既可作为大中
专学校和相关培训学校的教材,也是一本非常适合用来自学的参考书。
本书封面贴有清华大学出版社防伪标签,无标签者不得销售。
版权所有,侵权必究。侵权举报电话:座机电话号码 1座机电话号码78 1座机电话号码33
图书在版编目 CIP 数据
Dreamweaver
电脑美术基础与实用案例/博思创作室编著. ―北京:清华大学出版社,2007.4
ISBN 978-7-302-14873-9 Ⅰ. D… Ⅱ.博… Ⅲ.
主页制作―图形软件,Dreamweaver Ⅳ.TP393.092
中国版本图书馆CIP 数据核字 2007 第036727 号
责任编辑:张彦青 闫光龙
封面设计:杨玉兰
责任校对:马素伟
责任印制:
出版发行:清华大学出版社 地 址:北京清华大学学研大厦A 座 .cn
邮 编:100084
社 总 机:座机电话号码 邮购热线:座机电话号码 投稿咨询:座机电话号码 客户服务:座机电话号码
销:全国新华书店
本:185×260 印 张:30.25
字 数:705 千字
次:2007 年4 月第1 版 印 次:2007 年4 月第1 次印刷 附光盘1 张
数:1~4000
价:45.00 元
―――――――――――――――――――――――――――――――――――――――――――――― 本书如存在文字不清、漏印、缺页、倒页、脱页等印装质量问题,请与清华大学出版社出版部联系
调换。联系电话:座机电话号码 转3103 产品编号: 前
言 要制作出优秀的作品需要各方面的知识与专业软件之间的完美配合。软件的使用也许
很容易,但随着数字艺术的飞速发展,要求准设计师们必须具备全方位的专业知识,对数
字艺术有着敏锐的观察力与深刻的洞察力,这样才能够在未来的工作实践和艺术探索中得
心应手,最终创作出好的作品来。 “数字艺术新视点”丛书是一套“图书+多媒体光盘”的优秀教材,它所涉及的内容
十分广泛,涵盖了从艺术绘画、平面广告设计到工业效果图技法、网页设计开发以及影视
处理、三维设计等多个应用领域。 本丛书的主要特点如下。 1
以当今最流行的图形图像软件的功能为主线,配合大量的典型案例制作,循序渐
进地讲解了软件的应用核心知识,使读者以最快的速度掌握软件的功能,并熟练运用到实
际工作中,达到“学以致用”的效果。 2
“图书”与“多媒体讲解”的配合教学,改变了以前陈旧、乏味的学习方式,非
常适合设计软件学习者的学习需求。 3
边学边练、语音讲解式的“多媒体教学光盘”,提供了轻松的学习环境,在学习
教材之前,先播放多媒体教学光盘进行学习,能在短短几个小时之内,快速地掌握应用软
件的主要功能。再配合教材从基本掌握软件功能开始,带读者一步一步地走入全面掌握并
应用的境界。 本系列教材提供了全角度的横向、纵向选择,能打开应用软件水平停滞不前的局面,
使读者领悟到设计时需要掌握的各种技能和各种思考方法,“数字艺术新视点”,必有一
款适合你! 本教材为《Dreamweaver
电脑美术基础与实用案例》,全书共分14 章,在前2 章中,
介绍了网页设计的基础知识、Dreamweaver 的操作界面和各种功能的应用性,以及站点管
理知识等;第3 章讲解了文本在网页中的应用;第4 章用实例讲解了表格的运用以及布局
表格的应用,制作了“如衣服饰”的商业网站;第5 章讲解了图像在网页中的应用及
正在加载中,请稍后...文档资料库一直致力于帮助更多的人得到更多更有价值的学习资料。如果您有关于本站的任何意见,欢迎可随时与我们的客户服务人员取得联系。
赞助商广告00:00:11.060 --> 00:00:16.040
欢迎大家回来。
00:00:16.660 --> 00:00:20.470
我们继续学习模块 4,我想就模块 4 解释一点。
00:00:20.520 --> 00:00:23.790
我们将这个模块命名为“部署秘籍”,
00:00:23.840 --> 00:00:27.770
是因为目前还没想到更好的名称。
目前为止我们设置了基础结构的很多资源,
00:00:27.820 --> 00:00:30.660
以让基础结构高效运行。
00:00:30.710 --> 00:00:34.230
接下来我们将设置一些部署,
00:00:34.280 --> 00:00:37.570
从 Krithika 上次讲到的地方继续讲下去,
00:00:37.620 --> 00:00:41.630
设置模板并执行一些发布。
00:00:41.680 --> 00:00:44.550
我们将首先部署 Web,然后部署 SQL Server。
00:00:44.600 --> 00:00:47.100
执行一些常见的设置,着眼于一些方面。
00:00:47.150 --> 00:00:49.390
下面快速向您介绍本模块内容。
00:00:49.440 --> 00:00:53.960
另一个有关本模块的组织问题是,
00:00:54.390 --> 00:00:56.370
可能有太多东西要展示。
00:00:57.310 --> 00:01:00.960
根据所有秘籍,您无法全部看完所有可能的秘籍,
00:01:01.010 --> 00:01:03.780
可能的应用场景无穷无尽。
00:01:03.830 --> 00:01:05.680
但我们会展示一些常见的东西。
本模块可能需要两个小时,
00:01:05.730 --> 00:01:11.190
但我们中间会有正常的休息时间。
00:01:12.970 --> 00:01:17.610
要记住这一点。我会尽量搞清楚何时切换主题。
00:01:18.170 --> 00:01:21.190
下面快速概述一下本模块:
00:01:21.240 --> 00:01:24.930
我们将谈论部署 Web、SQL。
00:01:24.980 --> 00:01:27.200
我们简要地探讨了 Azure VM 的一些功能。
00:01:27.250 --> 00:01:30.320
还有很多其他东西可以部署。
00:01:30.370 --> 00:01:32.930
到头来您可能只关注 SQL Server DACPAC。
00:01:32.980 --> 00:01:37.260
您可能只关注应用程序池和网站。
00:01:37.310 --> 00:01:40.230
但不管您做什么,
00:01:40.280 --> 00:01:43.840
使用简单的 XCopy 还是更高级的功能,
00:01:43.890 --> 00:01:47.800
我们会探讨各种可能性,展示很多东西。
00:01:47.850 --> 00:01:51.360
我们还将探讨回滚,
00:01:51.410 --> 00:01:53.910
演示回滚场景。回滚本身可以是自己的模块。
00:01:53.960 --> 00:01:57.010
有很多可使用回滚的场景,
00:01:57.060 --> 00:02:01.310
构建回滚的意义取决于回滚有多重要。
00:02:01.360 --> 00:02:03.520
我们稍微讲一下回滚与前滚,
00:02:03.570 --> 00:02:06.990
目前相当火的一种技术。
00:02:08.270 --> 00:02:11.430
然后讲讲配置转换和标记的使用。
00:02:11.480 --> 00:02:14.340
我们不打算在这方面做任何演示。
00:02:14.390 --> 00:02:20.260
已经有不少演示着眼于通过 Web 部署工具使用 Web 配置转换。
00:02:20.670 --> 00:02:25.490
Release Management 工具中内置有一个标记化功能,
00:02:25.540 --> 00:02:29.160
提供给您一个选项,
00:02:29.210 --> 00:02:31.130
但在不同环境之间执行部署时,
00:02:31.180 --> 00:02:34.800
一些配置信息是不同的。
典型的例子是 Web 配置。
00:02:34.850 --> 00:02:37.780
这些年来我们一直试图寻找相关的一些良方。
00:02:37.830 --> 00:02:40.870
我们会讲讲这个方面。
00:02:40.920 --> 00:02:44.140
有另外一个有关最佳实践的模块,
00:02:44.440 --> 00:02:47.980
是该课程系列的第二部分。
00:02:48.030 --> 00:02:50.180
本模块有太多东西要讲了。
00:02:50.790 --> 00:02:53.760
下面我们直接来看一些部署秘籍。Krithika,
00:02:53.810 --> 00:02:56.150
接下来就交给你了。这个演示任务很重。
00:02:56.200 --> 00:02:56.500
00:02:56.550 --> 00:02:58.290
持续两个小时。
00:02:58.340 --> 00:02:59.680
那么开始吧。
00:03:00.540 --> 00:03:03.650
我回到 VM 中。在这里开始演示。
00:03:04.430 --> 00:03:07.770
回到我们休息之前演示的地方。
00:03:07.820 --> 00:03:11.620
快速回顾一下:我们创建了一个发布模板。
00:03:11.670 --> 00:03:14.380
我们没有定义任何东西,这里没有发生任何事情。
00:03:14.430 --> 00:03:18.120
此时里面是空的。先前我们创建了发布路径,
00:03:18.170 --> 00:03:20.030
这个发布模板使用该路径。
00:03:20.600 --> 00:03:23.660
这就是先前所做的工作。我准备开始完成接下来的工作。
00:03:24.350 --> 00:03:28.160
我只看到父容器,即部署序列。
00:03:28.210 --> 00:03:28.960
00:03:29.290 --> 00:03:30.190
在设计界面上。
00:03:30.240 --> 00:03:32.290
没错。所以我接下来要完成一些工作。
00:03:32.340 --> 00:03:32.910
00:03:32.960 --> 00:03:43.890
可以看到这里有一个 Servers 区域。
00:03:35.660 --> 00:03:38.500
这是要用于全部三个环境的服务器。
00:03:38.550 --> 00:03:43.890
我要为 Dev、QA 和 Prod 环境使用 ALMDATA1。
00:03:44.410 --> 00:03:47.120
在现实中,您可能为每个环境配置不同的服务器。
00:03:47.170 --> 00:03:57.940
将这台服务器拖放到这个工作流上。
00:04:01.370 --> 00:04:04.460
其实所有神奇之处都发生在服务器上。
00:04:04.930 --> 00:04:04.980
00:04:05.030 --> 00:04:08.810
您使用的任何操作或工具都必须在服务器内,
00:04:08.860 --> 00:04:12.330
因为部署在服务器内执行。
00:04:12.380 --> 00:04:15.370
您要在那个节点内进行部署。
今天晚些时候,
00:04:15.420 --> 00:04:19.520
我们会探讨引入其他服务器时会发生什么,正如你提到的。
00:04:19.570 --> 00:04:20.030
00:04:20.080 --> 00:04:22.460
以及会显现出来的很多细微差别。
00:04:22.510 --> 00:04:23.070
00:04:23.120 --> 00:04:24.740
现在我要尽量保持简单一点。
00:04:25.530 --> 00:04:28.890
马上开始行动。
00:04:28.940 --> 00:04:32.860
首先我们要应用 Web 部署秘籍,
00:04:32.910 --> 00:04:38.280
从 IIS 工具和操作入手。
00:04:38.330 --> 00:04:42.740
我甚至将使用发布模板创建应用程序池,
00:04:42.790 --> 00:04:48.920
创建网站,执行会在 IIS 管理器执行的所有操作。
00:04:49.650 --> 00:04:53.810
Release Management 模板可以为我完成这一切。
00:04:53.860 --> 00:04:56.470
可以看到这些不同操作显示出来。
00:04:56.520 --> 00:05:00.660
甚至在 IIS Web 内,有多种技术可用。
00:05:00.710 --> 00:05:04.940
我们可以坐在这里介绍一下不同的技术。
00:05:04.990 --> 00:05:05.510
00:05:05.560 --> 00:05:08.470
有时要部署到一个现有的网站。
00:05:08.520 --> 00:05:11.190
你说过你使用的是裸机,
00:05:11.240 --> 00:05:12.870
每次环境中一切都要从头开始。
00:05:12.920 --> 00:05:15.070
是的,目前我还没有进行任何设置。
00:05:15.120 --> 00:05:16.960
没有要部署到的现有网站运行。
00:05:17.010 --> 00:05:17.550
这里什么都没有。
00:05:17.600 --> 00:05:20.160
每次在你的场景中你都要从头开始设置。
00:05:20.210 --> 00:05:22.330
没错。我不打算使用 IIS 管理器,
00:05:22.380 --> 00:05:25.000
在 IIS 管理器中创建应用程序池和网站,
00:05:25.050 --> 00:05:30.190
而是要使用发布模板完成这些工作。
00:05:30.240 --> 00:05:30.740
00:05:31.790 --> 00:05:35.150
再次进入我的工作流。
00:05:36.170 --> 00:05:43.280
首先我要拖放这个操作来创建应用程序池。
00:05:43.940 --> 00:05:46.950
这将是 Dev 环境的应用程序池。
00:05:47.480 --> 00:05:50.010
该应用程序池将在 ALMDATA1 上被创建。
00:05:50.580 --> 00:05:52.240
双击该操作。
00:05:52.940 --> 00:05:55.380
可以看到这里有不少配置变量。
00:05:55.430 --> 00:05:58.760
有些是必需的,有些则不然。
00:05:58.810 --> 00:06:01.580
如果我不输入应用程序池名称,可能行不通,
00:06:01.630 --> 00:06:04.620
因为这个操作需要应用程序池名称。
00:06:04.670 --> 00:06:07.900
将其命名为与我的目标阶段一样的名称,
00:06:09.200 --> 00:06:12.870
以期保持一致性。
00:06:13.560 --> 00:06:15.800
这就是我所需的,
00:06:15.850 --> 00:06:18.870
只需提供一个名称应该就可以了。
如果我不为这些变量赋值,
00:06:18.920 --> 00:06:22.120
该操作将使用默认值。
00:06:22.170 --> 00:06:24.730
好。所以如果你有大量默认设置,
00:06:24.780 --> 00:06:27.070
通常将应用程序池设置为这些默认值,
00:06:27.120 --> 00:06:27.700
或者我可以查看 IIS……
00:06:27.750 --> 00:06:31.980
没错。我可以进入 IIS,右键单击一个应用程序池。
00:06:32.030 --> 00:06:34.320
如果我想查看默认应用程序池或其他内容,
00:06:34.370 --> 00:06:34.890
我始终可以查看……
00:06:34.940 --> 00:06:36.310
查看高级设置。
00:06:36.360 --> 00:06:36.410
00:06:36.460 --> 00:06:39.020
如果我希望自动启动,
00:06:39.070 --> 00:06:41.910
可以将其设置为 True。Start Mode 设置为 OnDemand。
00:06:41.960 --> 00:06:43.180
这是我们会进行的一些设置。
00:06:43.230 --> 00:06:45.170
如果我想重写默认设置也可以。
00:06:45.220 --> 00:06:49.850
没错。退出这里,再次进入工作流。
00:06:50.430 --> 00:06:54.440
我所做的就是输入应用程序池的名称。
00:06:54.490 --> 00:06:57.190
保存该设置。
00:06:57.240 --> 00:07:01.760
看一下这个面包屑工具栏。抱歉,不小心关闭了。
00:07:01.810 --> 00:07:03.720
返回这里。
00:07:04.750 --> 00:07:09.540
可以看到这个面包屑工具栏。
00:07:09.590 --> 00:07:12.360
这是我目前所在位置,Create App Pool。
00:07:12.410 --> 00:07:13.690
00:07:13.740 --> 00:07:16.940
我可以使用这个链接返回上一页,
00:07:16.990 --> 00:07:19.040
这种方式简单直观。
00:07:19.660 --> 00:07:22.010
我要从头完成一切,
00:07:22.060 --> 00:07:24.790
刚才我创建了这个应用程序池,
00:07:24.840 --> 00:07:27.520
接下来创建一个附属于应用程序池的网站。
00:07:28.280 --> 00:07:30.630
这将是 Dev 环境的网站。
00:07:30.680 --> 00:07:31.250
00:07:31.300 --> 00:07:33.930
同样我使用发布模板为我完成这一操作。
00:07:33.980 --> 00:07:35.380
双击该操作。
00:07:36.420 --> 00:07:39.690
同样可以看到大量配置变量。
00:07:40.130 --> 00:07:43.810
该操作需要知道创建该网站所在的应用程序池,
00:07:43.860 --> 00:07:47.430
这是一个必填值。
00:07:47.480 --> 00:07:50.660
站点名称也必须填写。
00:07:50.710 --> 00:07:53.350
为其使用相同的名称,以保持一致性。
00:07:53.950 --> 00:07:56.840
接着输入一个没有在使用中的端口号。
00:07:59.270 --> 00:08:00.590
我不知道是什么。
00:08:00.640 --> 00:08:04.620
我确定这个端口号没有在用。
00:08:04.670 --> 00:08:06.840
然后指定物理路径。
00:08:07.560 --> 00:08:09.930
我们还可以从另外一个地方这么做。
00:08:09.980 --> 00:08:13.950
打开 Windows 资源管理器。我可以从这里浏览到 iNetPub,
00:08:14.000 --> 00:08:19.960
里面有一个 wwwroot 文件夹。
00:08:20.010 --> 00:08:24.340
我希望应用程序位于这里。
复制这个路径,
00:08:24.390 --> 00:08:28.340
这样可避免键入失误,将其粘贴到这里,
00:08:29.660 --> 00:08:35.100
并且创建一个文件夹,用于存放 Dev 的内容。
00:08:35.150 --> 00:08:37.600
好。这个操作似乎有三个必填字段,
00:08:37.650 --> 00:08:40.960
你知道是因为以前设置过。
00:08:41.280 --> 00:08:44.080
其余字段均采用默认值。
00:08:44.130 --> 00:08:44.550
00:08:44.600 --> 00:08:45.190
00:08:45.240 --> 00:08:47.700
如果不为必填字段指定值,
00:08:47.750 --> 00:08:49.030
则会看到错误。
00:08:49.080 --> 00:08:50.400
会在运行时看到错误。
00:08:50.450 --> 00:08:50.920
运行时,没错。
00:08:50.970 --> 00:08:52.460
不是在设计时。
00:08:52.510 --> 00:08:52.700
00:08:52.750 --> 00:08:53.250
00:08:53.300 --> 00:08:54.750
保存此设置。
00:08:55.740 --> 00:08:58.050
你定期保存的这种做法挺好。
00:08:58.100 --> 00:09:00.540
我要指出这是最佳做法。
在你们开始构建和编排模板时,
00:09:00.590 --> 00:09:03.910
务必要在当前工具中频繁单击 Save 按钮,
00:09:03.960 --> 00:09:08.620
因为我曾经有几次构建了一些东西,
00:09:08.670 --> 00:09:11.760
没保存就关闭了模板,
00:09:11.810 --> 00:09:13.930
结果所有更改都丢失了。
00:09:13.980 --> 00:09:15.640
不过系统会提示。您会看到一个提示。
00:09:15.690 --> 00:09:18.790
然后单击 Save。
但我现在不再那么做了,
00:09:19.840 --> 00:09:22.450
我在 Microsoft Word 或其他工具中定期单击 Save。
00:09:22.500 --> 00:09:27.310
目前为止,我们创建了应用程序池,创建了网站。
00:09:27.360 --> 00:09:31.530
接下来我想构建组件。
00:09:31.580 --> 00:09:34.230
Mike,和我们谈谈组件。
00:09:34.280 --> 00:09:37.210
组件本身……
00:09:37.260 --> 00:09:41.200
Krithika 将构建构成一个工具的组件,
00:09:41.250 --> 00:09:45.950
组件特定于部署应用程序的方式。
00:09:46.000 --> 00:09:52.320
基于您的应用程序,这可能有所不同。
00:09:52.370 --> 00:09:55.680
例如,稍后我将创建一个处理 DACPAC 的组件。
00:09:55.730 --> 00:09:57.690
你要创建处理 Web 的组件。也许只是 XCopy。
00:09:57.740 --> 00:10:01.630
不过创建这些组件后,
00:10:01.680 --> 00:10:05.940
我可以在多个模板中重用它们。
00:10:05.990 --> 00:10:10.200
组件是一种设计时工具,是您想创建的功能的包装器。
00:10:12.640 --> 00:10:16.260
在午休之前我们简单讲了组件。
00:10:16.310 --> 00:10:19.300
我们没有创建任何组件。
00:10:19.350 --> 00:10:23.230
我们有几个不同的操作可使用,比如 XCopy Deployer。
00:10:23.280 --> 00:10:26.150
这里我们想创建一个新组件。
00:10:26.200 --> 00:10:29.200
右键单击 Components 链接并选择 Add,
00:10:29.650 --> 00:10:32.090
因为我们目前尚未创建任何组件。
00:10:32.140 --> 00:10:35.580
可以看到这个界面是空的,
00:10:35.630 --> 00:10:37.560
接下来从头创建一个组件,
00:10:39.220 --> 00:10:42.380
将其命名为 JS-Deployer。
00:10:43.000 --> 00:10:43.500
00:10:46.540 --> 00:10:48.660
可以看到这里有不少选项可用。
00:10:48.710 --> 00:10:51.380
有几个不同的选项卡。
00:10:51.430 --> 00:10:55.190
Source、Deployment 选项卡。这里我们将看一下每个选项卡。
00:10:55.800 --> 00:10:59.350
在 Source 选项卡上,这个 Builds 区域很有意思。
00:10:59.830 --> 00:11:03.760
我们有三个选项。
能否向下滚动一点显示全部选项。
00:11:03.810 --> 00:11:07.910
能否放大一些。界面上有三个选项。
00:11:07.960 --> 00:11:12.950
可以选择与应用程序一起生成,
00:11:13.000 --> 00:11:18.590
继承自面向生成系统的这个发布模板。
00:11:18.640 --> 00:11:24.330
我想部署的输出其实与应用程序一起生成,
00:11:24.380 --> 00:11:27.420
有一个放置位置可获取负载。
然后有一个独立生成功能。
00:11:27.470 --> 00:11:30.690
Krithika,单击 Esc 键,
00:11:30.740 --> 00:11:32.980
我想指出任何时候都有很多这些小问号。
00:11:33.030 --> 00:11:35.110
将鼠标悬停于第二个问号。
00:11:35.160 --> 00:11:36.420
这会给出精彩描述。
00:11:36.470 --> 00:11:39.440
是的,第二个选项,独立生成。能否将鼠标悬停于这个上?
00:11:39.490 --> 00:11:41.840
没问题。我正在试图缩放屏幕。
00:11:42.970 --> 00:11:46.410
这段话基本上是说,
00:11:46.460 --> 00:11:50.500
在发布时您必须提供团队项目和生成定义。
00:11:50.550 --> 00:11:52.110
这个选项动态性不高。
00:11:53.370 --> 00:11:56.740
第三个选项是在外部生成,
00:11:56.790 --> 00:11:59.280
请快速退出这里,
00:11:59.330 --> 00:12:01.670
该选项提供全面的灵活性。
不管存放负载的 UNC 路径在哪里。
00:12:01.720 --> 00:12:07.310
请将鼠标悬停于问号处。
这里提供给我们一段详细描述。
00:12:07.360 --> 00:12:09.730
基本上是说,必须为基础包提供位置。
00:12:09.780 --> 00:12:12.920
在发布时,必须输入想使用的子文件夹或生成号。
00:12:12.970 --> 00:12:15.680
这个选项提供灵活性。
00:12:15.730 --> 00:12:18.590
稍后我们将使用自动驾驶仪生成定义执行持续交付。
00:12:18.640 --> 00:12:25.670
这一切都包装在组件内。
00:12:26.000 --> 00:12:29.240
组件本身不仅将是我使用的工具,
00:12:29.290 --> 00:12:33.650
比如 XCopy、DACPAC、Reporting Services Deployer,
00:12:33.700 --> 00:12:38.380
而且我也要指定生成设置,或者是否选择使用生成设置。
00:12:38.430 --> 00:12:42.490
是的。因为记得之前在定义发布模板时,
00:12:42.540 --> 00:12:46.290
我们将发布模板连接到了生成定义。
00:12:46.340 --> 00:12:49.470
很快我们将对此进行更多探讨。
00:12:49.520 --> 00:12:51.830
设置这些也有一些应注意的细节。
00:12:51.880 --> 00:12:54.810
没错。我们选择与应用程序一起生成。
00:12:54.860 --> 00:12:58.060
我们已经将其连接到了发布模板。
00:12:58.110 --> 00:13:01.720
我想指定输出位置。
00:13:01.770 --> 00:13:05.850
可以看到系统已经提供给我生成放置位置了,
00:13:05.900 --> 00:13:14.220
我们已经在这台服务器上设置了生成放置共享。
00:13:14.270 --> 00:13:19.560
下面快速进入这里。
00:13:20.320 --> 00:13:23.170
这就是 Team Foundation Build 的放置位置,
00:13:23.220 --> 00:13:25.990
这是我们已经创建的生成定义。
00:13:26.040 --> 00:13:29.980
我们运行过这个生成定义一次。
第一次失败了,
00:13:30.030 --> 00:13:31.940
所以运行了第二次。
00:13:31.990 --> 00:13:36.350
可以看到第二个位置显示出来。
00:13:36.400 --> 00:13:40.810
在 PublishedWebsites 文件夹下可以看到生成输出。
00:13:40.860 --> 00:13:45.140
我要复制这个路径。
00:13:46.070 --> 00:13:55.750
我想将 Fantasy 文件夹中的输出复制到一个不同的位置。
00:13:55.800 --> 00:13:58.770
一些生成放置位置是动态的。
00:13:58.820 --> 00:14:06.220
事实上,由于你是在 Team Build 内构建 Web 应用程序,
00:14:06.270 --> 00:14:09.210
所以默认有这个 _PublishedWebsites。
00:14:09.260 --> 00:14:12.530
如果你不知何故定制了生成流程,
00:14:12.580 --> 00:14:15.770
重写了负载所在的位置,那么就得修改这个位置。
00:14:16.440 --> 00:14:18.960
稍后我展示数据库时,
00:14:19.010 --> 00:14:20.190
DACPAC 就没有这个 _PublishedWebsites。
00:14:20.240 --> 00:14:21.350
那时候就变了。
00:14:21.400 --> 00:14:23.730
这会有所不同。
00:14:23.780 --> 00:14:25.920
所以你要指定 _PublishedWebsites 和路由目录,
00:14:25.970 --> 00:14:27.700
因为这是负载输出的地方。
00:14:27.750 --> 00:14:28.500
00:14:28.780 --> 00:14:30.770
另外我希望大家明白的一点是,
00:14:30.820 --> 00:14:34.490
我们选择连接组件,
00:14:34.540 --> 00:14:37.580
告诉组件这是我们获取负载的地方。
00:14:37.630 --> 00:14:41.050
此时我们不说,我们希望生成也发布。
00:14:41.100 --> 00:14:41.340
00:14:41.390 --> 00:14:41.970
那是另一回事。
00:14:42.020 --> 00:14:43.410
那是另一个演示中要做的事。
00:14:43.460 --> 00:14:47.560
我们最终将启动发布……
00:14:47.610 --> 00:14:50.770
我们将从客户端工具启动发布,
00:14:50.820 --> 00:14:53.560
该工具会获取生成系统产生的负载。
00:14:53.610 --> 00:14:55.280
如果我只想将生成输出到 UNC 共享,
00:14:55.330 --> 00:15:02.030
可以灵活地从任何旧生成系统获取输出。
另外要谨记:午餐前我讲过,
00:15:02.080 --> 00:15:05.900
我们现在通过命令行,
00:15:05.950 --> 00:15:09.400
更易于从 VSO 或任何其他 CI 系统获取输出。
00:15:09.450 --> 00:15:12.680
有一篇相关的精彩博文。
00:15:12.730 --> 00:15:15.720
这里我们对这个组件进行的配置是,
00:15:15.770 --> 00:15:19.360
我们试图将这个 Fantasy 文件夹的内容复制到 iNetPub,
00:15:19.410 --> 00:15:22.210
我们在 iNetPub 上创建的目录。
00:15:22.260 --> 00:15:22.800
00:15:22.850 --> 00:15:25.180
这就是我们要做的。
下面进入 Deployment 选项卡,
00:15:25.230 --> 00:15:28.610
可以看到我目前没指定任何工具。
00:15:28.660 --> 00:15:32.070
我正要创建一个。
00:15:32.120 --> 00:15:34.890
在午餐休息之前我们看过这个列表。
00:15:34.940 --> 00:15:37.660
我们看了这些不同的可用工具。
00:15:37.710 --> 00:15:40.720
不过对于本组件,我要将重点放在这个工具上。
00:15:40.770 --> 00:15:43.720
先缩小屏幕停几秒,
00:15:43.770 --> 00:15:47.230
我要重点查看 XCopy Deployer。
00:15:47.280 --> 00:15:51.220
我要执行基本复制。我要继续并选择这个工具。
00:15:52.270 --> 00:15:58.430
可以看到该工具要求在运行时提供安装路径。
00:15:58.480 --> 00:15:59.300
00:15:59.350 --> 00:16:01.650
这是该工具使用的唯一参数。
00:16:02.600 --> 00:16:05.740
可以看到还有配置变量。
00:16:05.790 --> 00:16:08.320
这里我们不打算应用任何其他选项。
00:16:08.370 --> 00:16:11.190
我们仅保留默认值,Only in Command。
00:16:11.240 --> 00:16:14.610
还可以选择 Before Installation、After Installation。
00:16:14.660 --> 00:16:16.950
非常灵活。
00:16:17.000 -->
00:16:26.970
没错。如果我在 MSI 或需要设置的程序包中有一个工具,
00:16:26.970 --> 00:16:26.970
可以灵活地替换一些设置值。
00:16:27.020 --> 00:16:31.000
很多场景驱动的东西都内置于该工具中。
00:16:31.050 --> 00:16:34.000
遗憾的是我们无法向您展示全部场景,
00:16:34.050 --> 00:16:36.480
但如果您在设置 MSI 或执行某种部署,
00:16:36.530 --> 00:16:39.630
之前可能这么做过,
00:16:39.680 --> 00:16:42.420
可以灵活地做出一些选择。
00:16:43.010 --> 00:16:46.450
没错。还有一个选项卡,
00:16:46.500 --> 00:16:49.020
将提供在本组件中使用的发布模板,目前为止还没有,
00:16:49.070 --> 00:16:52.220
因为我们正在创建这个组件。
00:16:52.270 --> 00:16:54.100
再次返回到 Source 选项卡中。
00:16:54.640 --> 00:16:57.700
一切设置看起来没问题。此时我准备保存组件。
00:16:57.750 --> 00:17:00.840
保存完组件之后,
00:17:00.890 --> 00:17:02.810
我将在工作流中使用这个组件。
00:17:02.860 --> 00:17:07.270
这个组件目前只是 XCopy Deployer。
00:17:07.320 --> 00:17:10.860
用于从生成放置位置复制一些内容到 IIS 指向的目录。
00:17:10.860 --> 00:17:15.210
标准 Web 部署。
00:17:15.260 --> 00:17:17.380
顺便说一下,您可以使用 Web 部署工具,
00:17:17.430 --> 00:17:20.390
还可以执行其他集成操作,对此我们不会展示。
00:17:20.440 --> 00:17:24.170
这只是执行到 Web 的典型复制部署的一个例子。
00:17:24.220 --> 00:17:27.000
是的。接下来保存并关闭。
00:17:28.400 --> 00:17:32.850
我已经完成组件的创建,
00:17:32.900 --> 00:17:36.040
下面关闭这个视图。
可以看到我已经创建了组件,
00:17:36.090 --> 00:17:38.870
但工具窗格中仍然没有显示。
00:17:38.920 --> 00:17:44.970
在工具窗格中右键单击 Components 并选择 Add。
00:17:46.640 --> 00:17:49.550
您会看到所有可用组件列表。
00:17:49.600 --> 00:17:53.730
我的组件出现在这个列表中。
00:17:53.780 --> 00:17:57.480
快速添加或链接该组件。
00:17:58.850 --> 00:18:02.340
这个组件现在可供使用了。
00:18:02.390 --> 00:18:03.790
我可以在创建的模板中使用它。
00:18:03.840 --> 00:18:04.400
00:18:04.450 --> 00:18:07.400
只需轻松拖放即可。
00:18:07.450 --> 00:18:10.590
这是一个相当无缝的体验。
00:18:11.330 --> 00:18:16.800
这只是一个工作流。只需拖放这些不同的活动即可完成任务。
00:18:16.850 --> 00:18:19.670
我刚刚拖放了 JS-Deployer。下面双击该组件,
00:18:19.720 --> 00:18:23.080
然后提供安装路径。
00:18:23.130 --> 00:18:26.260
这里只需提供一个配置变量。
00:18:26.310 --> 00:18:28.780
您会发现,在组件中,
00:18:28.830 --> 00:18:35.340
已标记化的值将被替换为您键入的任何值。
00:18:35.390 --> 00:18:42.680
您要指定在运行时替换的值。
00:18:42.730 --> 00:18:46.710
我要保证不输错。
00:18:49.470 --> 00:18:51.360
看起来没有问题。
00:18:51.410 --> 00:18:52.180
00:18:52.230 --> 00:18:53.490
保存设置。
00:18:54.230 --> 00:19:00.900
现在我定义完了面向 Dev 的发布模板。
00:19:00.950 --> 00:19:04.960
假设我想在 QA 和 Prod 中做相同的事情。
00:19:05.010 --> 00:19:09.220
我在模板中定义了所有这些步骤,
00:19:09.270 --> 00:19:12.810
为此有一种很简单的方式。
00:19:12.860 --> 00:19:17.900
我只需右键单击 Dev 管道,
然后选择 Copy Deployment Sequence。
00:19:18.670 --> 00:19:19.170
00:19:20.580 --> 00:19:22.920
我完成了所有工作。
00:19:22.970 --> 00:19:26.590
我不想继续在 QA 和 Prod 中重复做同样的事情。
00:19:26.640 --> 00:19:31.400
QA 将有非常类似的一组工作流。
00:19:31.450 --> 00:19:33.230
虽然有一些细微差别,但还是可以重用。
00:19:33.280 --> 00:19:37.200
任何开发人员使用复制和粘贴时都要谨慎。
00:19:37.250 --> 00:19:38.240
复制和粘贴,没错。
00:19:38.290 --> 00:19:44.200
对吧?因为可能将不应有的东西复制并粘贴到 Prod 或 QA 中。
00:19:44.250 --> 00:19:45.310
不同环境中要更改一些值。
00:19:45.360 --> 00:19:48.580
是的。我还会介绍一个非常好的视图。
00:19:48.630 --> 00:19:51.220
有一个视图允许您比较不同环境中使用的不同值。
00:19:51.270 --> 00:19:53.860
我们会看看该视图。
00:19:53.910 --> 00:19:56.750
我刚才进行了复制。
00:19:57.370 --> 00:19:59.690
下面进入 QA 执行粘贴。
00:20:01.130 --> 00:20:06.070
进入 QA 之后,自动出现一个对话框,
00:20:06.120 --> 00:20:09.730
问我这是否是我应为 QA 使用的服务器。
00:20:09.780 --> 00:20:14.720
在我的例子中,这是我为 Dev、QA 和 Prod 定义的服务器,
所以使用该服务器。
00:20:15.570 --> 00:20:17.650
看起来没问题。单击 Paste。
00:20:19.360 --> 00:20:22.500
可以看到活动被复制过来。
00:20:22.550 --> 00:20:26.210
接下来要在这里更改一些参数值。
00:20:26.260 --> 00:20:33.280
在 Dev 管道中,我们使用的名称是 JS-Dev。
00:20:33.330 --> 00:20:37.420
进入 QA 管道后,您要将 JS-Dev 改为 JS-QA。
00:20:37.470 --> 00:20:40.440
也许您使用不同的应用程序池名称,不同的网站名称……
00:20:40.490 --> 00:20:42.230
不同的端口号,等等。
00:20:42.280 --> 00:20:42.570
00:20:42.620 --> 00:20:44.770
下面快速看一下。
00:20:45.400 --> 00:20:47.240
双击 Create App Pool。
00:20:47.890 --> 00:20:50.480
活动和值已经复制过来,
00:20:50.530 --> 00:20:53.340
可以看到这个属性仍然指向 JS-Dev。
00:20:53.390 --> 00:20:58.140
快速将其改为 JS-QA。保存。
00:20:59.460 --> 00:21:04.120
返回来双击 Create Website。
00:21:04.980 --> 00:21:05.910
进行同样的更改。
00:21:06.820 --> 00:21:08.710
将这个值改为 QA。
00:21:09.810 --> 00:21:11.100
并且更改这个。
00:21:12.650 --> 00:21:14.580
更改端口号。
00:21:16.530 --> 00:21:20.610
这里需要更改很多值才能让这个工作流运行。
00:21:21.180 --> 00:21:24.180
尽管复制粘贴很好用,但正如 Mike 说的,
00:21:24.230 --> 00:21:28.110
您要确保所有值是正确的。保存此设置。
00:21:31.720 --> 00:21:33.660
是的。如果您有一个复杂的工作流,
00:21:33.710 --> 00:21:36.780
里面的属性非常多,那么就一定要谨慎。
00:21:36.830 --> 00:21:40.700
是的。下面复制这个路径,
00:21:40.750 --> 00:21:43.220
以免输错。看起来没什么问题。
00:21:44.360 --> 00:21:45.370
00:21:46.330 --> 00:21:48.660
下面为 Prod 做同样的事。
00:21:48.710 --> 00:21:52.920
现在我通过应用模板完成了 QA 的定义。
00:21:52.970 --> 00:21:55.980
接着右键单击 QA,选择 Copy Deployment Sequence,
00:21:56.030 --> 00:21:58.900
然后将其粘贴到 Prod 中。
00:22:01.420 --> 00:22:03.520
同样要求进行服务器映射,
00:22:03.570 --> 00:22:05.500
当您为不同环境设置了多台服务器时,
00:22:05.550 --> 00:22:07.820
就要更改这个设置。
00:22:07.870 --> 00:22:10.810
直接单击 Paste。
00:22:12.900 --> 00:22:14.910
再次更改一些值,以表明这是我的 Prod 环境。
00:22:25.230 --> 00:22:27.910
在你这么做的同时,我想简要地讲讲……
00:22:27.960 --> 00:22:32.860
获取 Update 2 的一大原因是新的服务器标记特性。
00:22:32.910 --> 00:22:36.220
Update 2 之前的版本中一些工作流存在的一个问题是,
00:22:36.270 --> 00:22:40.900
您可能要部署到多个环境,多台服务器。
00:22:40.950 --> 00:22:48.680
假设您要反复为每一个环境构建工作流步骤,
00:22:48.730 --> 00:22:51.790
这就比较繁琐。
更别说如果您要在某处进行更改,
00:22:51.840 --> 00:22:54.420
稍后对其进行维护,您需要返回去,
00:22:54.470 --> 00:22:57.950
在发布模板的各个环境中进行这一更改。
00:22:58.000 --> 00:23:03.210
Update 2 中的这个标记功能,
00:23:03.260 --> 00:23:05.270
与其他标记功能的作用基本一样。
00:23:05.320 --> 00:23:08.920
您可以标记服务器,
00:23:08.970 --> 00:23:16.500
然后要求在任何地方看到这些服务器标记时,
只运行这个工作流,只运行这个发布体验。
00:23:16.550 --> 00:23:21.090
您可以在各处使用服务器标记,
00:23:18.850 --> 00:23:24.320
然后那个模板哪里都能去。
如果您在一个地方进行了一项更改,
00:23:24.370 --> 00:23:27.220
维护时无需到所有其他地方。更易于维护。
00:23:27.760 --> 00:23:33.770
这是一个特性驱动的流程。
我们还讲过一个额外的命令行,
00:23:33.820 --> 00:23:40.230
该命令行使我们更容易绑定生成到部署,
00:23:40.280 --> 00:23:43.350
不管是否从 TFS 或内部部署 Team Build 发布。
00:23:43.400 --> 00:23:47.220
这两者是 Update 2 中的两大特性。
00:23:47.560 --> 00:23:49.550
00:23:50.380 --> 00:23:52.630
此时我已经完成了发布模板的定义。
00:23:52.680 --> 00:23:57.410
我准备运行该模板。关闭这个窗口。
00:23:59.890 --> 00:24:00.390
00:24:00.970 --> 00:24:03.250
进入 Releases 选项卡。
00:24:04.250 --> 00:24:07.180
这是那第三个原因。你说过,你要做管理工作,
00:24:07.230 --> 00:24:10.040
定义模板,然后运行发布。
00:24:10.090 --> 00:24:11.010
触发发布,没错。
00:24:11.060 --> 00:24:12.680
现在我们终于可以运行发布了。
00:24:12.730 --> 00:24:15.760
我知道,是时候了。
00:24:15.810 --> 00:24:18.590
显然我还没有运行任何东西。
00:24:18.640 --> 00:24:21.250
我们是从头完成这一切,
00:24:21.300 --> 00:24:24.310
所以我们没有任何发布路径显示在 Traffic Overview 中。
00:24:24.360 --> 00:24:27.610
快速进入 Releases 选项,
00:24:27.660 --> 00:24:30.770
因为默认会导航到 Traffic Overview 来查看流量情况。
00:24:30.820 --> 00:24:33.960
下面单击 Releases 选项。
00:24:34.010 --> 00:24:37.310
这是创建发布的地方。
00:24:37.360 --> 00:24:40.590
可以看到有一个 New 选项。
00:24:41.500 --> 00:24:436.540
单击 New。这将是我的第一个发布:JS Release 1。
00:24:436.540 --> 00:24:49.540
我坚持采用命名约定。
00:24:51.600 --> 00:24:52.100
00:24:52.650 --> 00:24:55.300
我需要选择一个发布模板。
00:24:55.350 --> 00:24:58.540
我们刚定义完一个发布模板,所以就使用这个模板。
00:24:58.590 --> 00:24:59.850
是的,你只有一个。
00:24:59.900 --> 00:25:02.930
可以看到 JS-Release Template 显示出来。
00:25:03.730 --> 00:25:06.300
还有一个 Target Stage 字段。
00:25:07.450 --> 00:25:13.630
这主要定义目标阶段。
00:25:13.680 --> 00:25:16.200
定义是否要一直运行到生产阶段。
00:25:16.250 --> 00:25:20.940
如果我想在 QA 阶段停止,可以将其改为 QA。
00:25:20.990 --> 00:25:26.050
明白了。所以你的模板有一个管道:Dev、QA、Prod。
00:25:26.100 --> 00:25:30.810
这个模板定义直至生产阶段的路径。
00:25:30.860 --> 00:25:31.340
默认是这样。
00:25:31.390 --> 00:25:33.600
如果你选择默认的目标阶段 Prod,
00:25:33.650 --> 00:25:37.260
基于审批步骤和是否有步骤失败,
00:25:37.310 --> 00:25:41.010
发布会尽可能运行地远一些。
但在基于模板发布时,
00:25:41.060 --> 00:25:46.100
可以选择仅运行发布到 Dev 阶段,不能再远。
00:25:46.150 --> 00:25:48.830
是的,或者在 QA 阶段停止。我们有这样的灵活性。
00:25:48.880 --> 00:25:49.380
00:25:50.400 --> 00:25:52.690
接下来我要选择一个生成。
00:25:52.740 --> 00:25:57.600
记住,该生成从放置文件夹获取所有输出。
00:25:58.270 --> 00:26:01.650
这里我可以选择最新的生成。
00:26:02.120 --> 00:26:05.200
或者可以通过 Select 寻找一个生成。
00:26:05.250 --> 00:26:06.910
这里只有一个生成。
00:26:06.960 --> 00:26:07.090
00:26:07.140 --> 00:26:09.500
这是我最新且最好的生成。
00:26:09.550 --> 00:26:09.930
00:26:09.980 --> 00:26:13.800
该生成将复制这个文件夹下的内容,
00:26:13.850 --> 00:26:17.800
然后将其迁移到 iNetPub。
00:26:17.850 --> 00:26:19.520
是的,负载在那儿。
00:26:20.540 --> 00:26:24.840
你在放置到发布模板的那个组件中定义了这些内容。
00:26:24.890 --> 00:26:26.360
JS-Deployer 组件。
00:26:26.410 --> 00:26:26.600
00:26:26.650 --> 00:26:29.920
我可以草稿状态创建这个发布。
如果这是一项正在进行的工作,
00:26:29.970 --> 00:26:33.220
我还没有完成,可以草稿状态创建发布。
00:26:33.270 --> 00:26:35.910
在运行时重写一些值。
00:26:35.960 --> 00:26:36.270
00:26:36.320 --> 00:26:38.940
与模板中的值有点不同。
00:26:38.990 --> 00:26:40.550
不过我要……
此时我完成了发布,
00:26:40.600 --> 00:26:45.640
所以接着从这里启动发布。
00:26:45.640 --> 00:26:47.350
为此单击 Start。
00:26:50.520 --> 00:26:54.400
这会触发发布,
00:26:56.480 --> 00:27:00.190
将我导航到这个 Releases 选项卡中。
00:27:00.240 --> 00:27:07.090
并且显示有关该发布的信息。这里显示发布正在进行中。
00:27:07.140 --> 00:27:07.680
00:27:07.730 --> 00:27:11.810
所有者是 Bob。我们知道一切操作都是自动化的。
00:27:12.530 --> 00:27:15.420
从 Dev 到 QA 到 Prod 的所有步骤都是自动化的。
00:27:15.470 --> 00:27:19.420
可以看到状态也在更新中。
00:27:19.470 --> 00:27:23.340
如果获得有关发布的更多信息,此状态将自动更新。
00:27:23.390 --> 00:27:25.450
然后可以单击 Details,
00:27:25.500 --> 00:27:28.550
查阅更多细节。
00:27:28.600 --> 00:27:29.350
00:27:29.630 --> 00:27:30.310
00:27:30.360 --> 00:27:31.780
发布失败了。
00:27:32.140 --> 00:27:33.540
这下好了。
00:27:33.590 --> 00:27:34.190
真是糟糕。
00:27:34.240 --> 00:27:36.970
00:27:37.780 --> 00:27:43.720
看一下这个日志,
00:27:44.000 --> 00:27:46.790
这个文本文件中没有太多信息。
00:27:47.790 --> 00:27:50.940
是的。里面显示 Utility to configure。缺什么东西吗?
00:27:50.990 --> 00:27:52.820
缺滚动条吗?
00:27:52.870 --> 00:27:59.520
如果我将鼠标悬停于 Message 字段,出现不少信息,
00:27:59.570 --> 00:28:03.390
但还是没有告诉我发生了什么,
00:28:03.440 --> 00:28:06.760
或者什么导致我的发布失败。
00:28:06.810 --> 00:28:11.910
是的。现在是否应该更深入地介绍一下日志记录?
00:28:11.960 --> 00:28:12.480
就这么办。
00:28:12.530 --> 00:28:13.020
00:28:13.020 --> 00:28:21.820
在该工具中,日志是部署步骤出问题时您要检查的第一个地方。
00:28:21.870 --> 00:28:25.360
在最后一个模块中,我会向大家介绍一篇不错的博文。
00:28:25.410 --> 00:28:29.210
在部署代理和 Release Management 服务器级别,
00:28:29.260 --> 00:28:32.190
有许多方式可启用更详细的日志记录。
00:28:32.240 --> 00:28:36.620
可以使用命令行,设置 Trace Enable。
00:28:36.670 --> 00:28:39.390
设置详细程度和配置文件跟踪:
00:28:39.440 --> 00:28:42.380
后面我会介绍这些方式。
如果问题很难诊断,
00:28:42.430 --> 00:28:45.140
您可以通过这些方式获得更多详情。
00:28:45.190 --> 00:28:47.890
没错。知道为何这个发布失败吗,Mike?
00:28:48.480 --> 00:28:50.800
为何失败?我觉得……
00:28:51.520 --> 00:28:53.610
这是目前为止获得的全部信息吗?
00:28:53.660 --> 00:28:54.390
这就是全部信息。
00:28:55.550 --> 00:29:00.380
我知道,原因是我们在部署代理设置中缺了什么。
00:29:00.430 --> 00:29:03.540
你说得对。我们看一下。
00:29:03.590 --> 00:29:07.380
在安装和配置 Release Management 时,
00:29:07.430 --> 00:29:13.390
我们使用了 RMAgent 帐户。
我先前这么做过,选择 Properties。
00:29:14.610 --> 00:29:15.590
RMAgent 只是……
00:29:15.640 --> 00:29:18.800
这只是一个基本用户。RMAgent 只是一个基本用户。
00:29:18.850 --> 00:29:20.580
没有人信任该用户。
00:29:20.630 --> 00:29:24.510
问题是,在 Windows 操作系统上安装软件时,
00:29:24.560 --> 00:29:27.420
我们是否需要权限?
00:29:28.180 --> 00:29:28.820
你这么认为,对吧?
00:29:28.870 --> 00:29:29.900
00:29:29.950 --> 00:29:31.130
下面修复这个问题。
00:29:31.180 --> 00:29:31.680
00:29:32.200 --> 00:29:35.040
RMAgent 在第一步就失败了。
00:29:35.090 --> 00:29:38.620
再看一下详细信息,
00:29:38.670 --> 00:29:41.750
可以看到第一步就失败了。
00:29:41.800 --> 00:29:45.560
RMAgent 试图创建应用程序池,但无法创建。
00:29:46.090 --> 00:29:48.970
RMAgent 甚至无法逾越这第一步,
00:29:49.020 --> 00:29:51.390
因为其在 IIS 上没有足够的权限这么做。
00:29:51.440 --> 00:29:53.720
是的。如果你要在某处安装部署代理,
00:29:53.770 --> 00:29:56.540
委托其执行重要任务。
00:29:56.590 --> 00:30:00.780
该代理可能要接触注册表。
00:30:00.830 --> 00:30:02.500
可能要接触 SQL Server,最终你要担心权限。
00:30:02.550 --> 00:30:04.540
但该代理很有可能将是一个管理员。
00:30:04.590 --> 00:30:06.340
是的,这就是我们在这里要做的。
00:30:06.390 --> 00:30:11.750
本例中,RMServer、部署代理和客户端都在同一台机器上运行,
00:30:11.800 --> 00:30:15.020
但通常不会有这种情况。
00:30:15.070 --> 00:30:15.980
00:30:16.030 --> 00:30:18.650
所以不用担心设置管理员之类的问题。
00:30:18.700 --> 00:30:19.310
00:30:19.360 --> 00:30:22.240
下面我要让 RMAgent 成为管理员。
00:30:28.470 --> 00:30:31.400
00:30:31.450 --> 00:30:36.710
单击 Apply,OK。我要执行 IIS 重置,
00:30:37.640 --> 00:30:38.930
看看这是否有所帮助。
00:30:38.980 --> 00:30:41.120
不要期望这会自动发挥神效。
00:30:41.170 --> 00:30:42.760
你让我试一下吗?
00:30:43.590 --> 00:30:47.060
是的,单击 Restart Stage 重新启动阶段。
00:30:47.110 --> 00:30:49.390
单击 Restart Stage。
00:30:49.440 --> 00:30:53.510
发布在 Dev 阶段就失败了。
00:30:53.560 --> 00:30:58.420
这是我们基于发布模板和发布路径定义的第一个阶段。
00:30:59.210 --> 00:31:03.190
下面重新启动该阶段,看看是否有用。
00:31:04.530 --> 00:31:07.700
是的。如果有任何先前的阶段成功了,
00:31:07.750 --> 00:31:09.350
这会从先前失败的地方重新启动。
00:31:09.400 --> 00:31:09.870
00:31:09.920 --> 00:31:10.910
然后继续运行。
00:31:12.150 --> 00:31:15.490
似乎还是不行。还是同样的错误。
00:31:16.730 --> 00:31:20.350
现在你可以试一下 IIS 重置。
00:31:20.860 --> 00:31:21.360
00:31:23.120 --> 00:31:26.740
这像是一场曾经打过的战斗。
00:31:26.790 --> 00:31:29.510
不止一次。
00:31:29.560 --> 00:31:31.760
00:31:31.810 --> 00:31:35.820
无法连接 IIS,这在意料之中,因为重置时会停止 IIS 服务。
00:31:36.580 --> 00:31:38.670
暂时无法连接。
00:31:39.530 --> 00:31:42.550
当 IIS 服务再次启动时,我将做同样的事情。
00:31:42.600 --> 00:31:45.700
我将再次重新启动阶段,看看会发生什么。
00:31:45.750 --> 00:31:46.250
00:31:46.750 --> 00:31:50.980
可以看到 IIS 在重启。IIS 被停止,然后重启。
00:31:51.670 --> 00:31:54.940
再次做同样的事情。
00:31:54.990 --> 00:31:55.420
00:31:55.470 --> 00:31:58.800
重新启动阶段。这是我们的第三次尝试。
00:31:58.850 --> 00:32:01.410
这里显示我尝试的次数。
00:32:01.460 --> 00:32:02.160
00:32:02.210 --> 00:32:05.120
实现可见性和可追溯性。
00:32:05.170 --> 00:32:08.710
提供有关过去发生的所有事情的信息。
00:32:08.760 --> 00:32:09.410
多次尝试。
00:32:09.460 --> 00:32:13.290
有关失败发布的信息。
看看第三次会不会成功。
00:32:13.340 --> 00:32:16.950
或者就像我的罚球命中率,不怎么高。
00:32:17.000 --> 00:32:22.400
仍然在等待处理。
00:32:23.930 --> 00:32:26.240
我在上面看到一个按钮。我不希望您按这个按钮,
00:32:26.290 --> 00:32:28.580
但如果您不喜欢此发布,遇到问题,
00:32:28.630 --> 00:32:30.760
或者想撤销此发布,可以按这个按钮停止。
00:32:31.910 --> 00:32:35.550
您只是希望权限问题消失。
00:32:35.600 --> 00:32:38.970
根据以往在不同环境中排除错误的经验,
00:32:39.020 --> 00:32:42.440
我们最终可能会遇到一种情况,
00:32:42.490 --> 00:32:43.930
需要重启机器。
00:32:43.980 --> 00:32:47.820
如果这次不成功,下一步我们就得这么做了。
00:32:47.870 --> 00:32:50.920
是的。我们可以展示在 Azure 中重启 VM 有多快。
00:32:50.970 --> 00:32:54.220
希望这次走运,但 VM 重启起来真的很快。
00:32:58.480 --> 00:32:59.560
仍然在等待处理。
00:32:59.610 --> 00:33:03.560
是的。不过比上一次运行时间长一些。
00:33:03.610 --> 00:33:06.970
这是一个好的征兆吗?
00:33:07.780 --> 00:33:09.150
稍后就知道了。
00:33:10.270 --> 00:33:14.370
我也不知道。如果你不介意,在等待过程中,
00:33:14.420 --> 00:33:17.190
讲一下底部的这个 Configuration Variables。
00:33:17.240 --> 00:33:19.390
好,这是我之前希望介绍的一个功能。
00:33:19.440 --> 00:33:23.130
该功能支持您比较为不同环境使用的变量。
00:33:23.420 --> 00:33:28.110
可以看到这里有一个操作筛选器,
00:33:28.160 --> 00:33:31.410
我可以基于工作流中的那些活动进行筛选。
00:33:31.460 --> 00:33:33.980
该功能支持进行直观的比较。
如果您输入错误,
00:33:34.030 --> 00:33:39.790
通过查看 Dev、QA 和 Prod 中使用的值,立刻就可以看出来。
00:33:39.790 --> 00:33:41.860
继续往下滚动,这些就是所有必需的值。
00:33:41.910 --> 00:33:44.400
是的。这个并排视图很棒。
00:33:44.450 --> 00:33:46.310
我喜欢比较,因为通常在复制和粘贴内容时,
00:33:46.360 --> 00:33:48.700
有时难免会出错。
00:33:48.750 --> 00:33:49.150
00:33:49.200 --> 00:33:51.930
如果我选择 Create Web Site 操作,
00:33:51.980 --> 00:33:55.710
可以看到参数要比 Create App Pool 多很多。
00:33:55.760 --> 00:33:56.260
00:33:56.310 --> 00:33:58.860
看起来一切都没有问题。
00:33:58.910 --> 00:33:59.660
00:33:59.710 --> 00:34:01.420
我在考虑……
00:34:01.690 --> 00:34:03.540
顶部还有一个选项我们可以看一下。
00:34:03.590 --> 00:34:07.760
屏幕左上角有一个 View Sequence。
00:34:08.570 --> 00:34:12.840
先关闭这个窗口,进入 View Sequence。
00:34:13.340 --> 00:34:16.850
我们讲过这些发布模板是蓝图,
00:34:16.900 --> 00:34:21.340
在执行这些发布时,
00:34:21.390 --> 00:34:25.900
将创建有关这些模板的事务。
00:34:25.950 --> 00:34:28.890
优点是您可以回看。Krithika 可能这么做过……
00:34:28.940 --> 00:34:32.670
这个发布正在进行中,但 Krithika 可得到这个相同的视图,
00:34:32.720 --> 00:34:35.640
深入探究工作流,深入探究活动,
00:34:35.690 --> 00:34:41.190
查看指定的值,返回查看之前编排的业务流程。
00:34:41.190 --> 00:34:43.590
这也相当酷。
00:34:43.640 --> 00:34:46.020
这里有一些不错的功能。
00:34:46.690 --> 00:34:48.790
是的,这告诉我,这是目标阶段。
00:34:48.840 --> 00:34:49.960
就是那个图标。
00:34:50.010 --> 00:34:51.790
00:34:51.840 --> 00:34:53.050
如果我将鼠标放在这里,可以看到……
00:34:53.100 --> 00:34:54.720
另外还有一个 View Log 选项。
00:34:54.770 --> 00:34:55.120
00:34:55.900 --> 00:34:58.100
这将你带回到日志记录这里。
00:34:58.150 --> 00:35:00.170
这个发布似乎永远完不成了,
00:35:00.220 --> 00:35:02.870
我们是否应该考虑停止发布并重启机器。你认为呢?
00:35:04.120 --> 00:35:05.160
就这么办吧。
00:35:05.210 --> 00:35:05.950
除非你有任何其他解决方法。
00:35:07.730 --> 00:35:11.410
另外还有一个字段我想强调一下。
00:35:11.460 --> 00:35:13.750
我先快速刷新一下。
00:35:18.540 --> 00:35:20.050
右键单击并刷新。
00:35:22.610 --> 00:35:27.560
我想看看究竟这个发布是否运行过。
00:35:27.610 --> 00:35:28.560
我不这么认为。
00:35:28.610 --> 00:35:30.080
00:35:30.130 --> 00:35:32.360
将代理添加为管理员之后,
00:35:32.410 --> 00:35:36.240
我们遇到一种异乎寻常的情况。
00:35:36.290 --> 00:35:38.370
如果 Krithika 一开始就这么做,就会省去很多周折。
00:35:39.090 --> 00:35:41.220
我们就此演示争论过。
00:35:41.920 --> 00:35:45.880
现在的解决方法就是重启,问题应该就消失了。
00:35:45.930 --> 00:35:46.270
00:35:46.320 --> 00:35:49.360
如果您不在生产中,可能会遇到这个问题。
00:35:49.410 --> 00:35:54.440
务必记住这一点:IIS 重置并非总是万能灵药。
00:35:55.030 --> 00:35:57.060
那么你希望我停止这个发布?
00:35:57.110 --> 00:35:58.300
五分钟之前就希望这么做。
00:35:58.350 --> 00:35:58.910
00:35:59.640 --> 00:36:00.930
那么就这么办吧。
00:36:00.980 --> 00:36:01.330
开个玩笑。
00:36:01.380 --> 00:36:03.040
在你失去耐心前。
00:36:03.090 --> 00:36:03.880
这个发布没可能完成。
00:36:03.930 --> 00:36:09.880
我停止了这个发布。下面快速重启机器。
00:36:09.930 --> 00:36:11.630
对此我很赞同。
00:36:11.680 --> 00:36:21.370
下面重启。
00:36:21.420 --> 00:36:23.710
希望没有 Windows 更新要等待处理。
00:36:23.760 --> 00:36:25.880
今天是星期三还是星期二?不管了。
00:36:25.930 --> 00:36:26.530
00:36:26.580 --> 00:36:26.660
00:36:26.710 --> 00:36:28.220
00:36:30.270 --> 00:36:34.710
重启机器,这需要几分钟。
00:36:36.080 --> 00:36:41.330
现在 VHD 处于重启模式,
00:36:41.380 --> 00:36:42.580
这是我们在屏幕上看到的吗?
00:36:42.630 --> 00:36:45.480
没错。我连接到的机器正在重启。
00:36:45.530 --> 00:36:51.510
如果大家不介意,在机器重启的同时……
00:36:52.020 --> 00:36:55.140
除非重启得特别快……这也是有可能的。
00:36:55.190 --> 00:36:56.660
快速返回到我的屏幕。
00:36:58.240 --> 00:37:02.160
我想再展示一些东西。
00:37:02.210 --> 00:37:05.910
转至 Releases 选项卡。Krithika,机器重启完了告诉我。
00:37:05.960 --> 00:37:06.140
00:37:06.190 --> 00:37:08.470
我想展示有点杂乱的东西。
00:37:08.520 --> 00:37:13.410
在 Azure 中,我们会将资源置于某个状态,
00:37:13.460 --> 00:37:16.460
抹掉模板内的一切内容,
00:37:16.510 --> 00:37:20.540
重头开始向您展示。
00:37:20.590 --> 00:37:23.810
我们不想有很多应用运行,比如 DemoWare。
00:37:23.860 --> 00:37:26.880
我们希望从头向您展示,
00:37:26.930 --> 00:37:29.770
现实中的很多东西会缺失。
00:37:29.820 --> 00:37:33.150
这里您可以看到有很多事情发生,我运行了不少发布。
00:37:33.200 --> 00:37:35.830
我昨天一晚上都在执行发布吗?
00:37:35.880 --> 00:37:40.190
是的。有很多发布。
00:37:40.240 --> 00:37:43.780
注意上面的这个筛选功能。
如果这些发布太杂乱,
00:37:43.830 --> 00:37:46.930
我希望仅查找与 Socialite 相关的发布。
00:37:46.980 --> 00:37:50.870
可以将这个词键入进来,缩小范围。这真的很棒。
00:37:51.660 --> 00:37:56.040
这里还有一个 All 选项。
00:37:56.090 --> 00:37:59.810
也许我只想查看被拒绝的发布,我可以查看未接受的发布。
00:37:59.860 --> 00:38:02.480
我说过,您可以深入探究。
00:38:02.530 --> 00:38:05.730
如果这个发布对我很重要,我可以深入探究该发布。
00:38:05.780 --> 00:38:08.060
我说过,您可以查看序列。
00:38:08.110 --> 00:38:10.620
我可以返回去,这是一周前发生的事情。
00:38:10.670 --> 00:38:13.050
这些是我使用的值。
00:38:13.950 --> 00:38:18.830
这里有一个日志,我可以查看输出。
00:38:18.880 --> 00:38:22.630
日志记录的信息不多,
00:38:22.680 --> 00:38:25.430
但可以看出我有一个一周前排除了的错误。
00:38:25.480 --> 00:38:28.060
这个日志是在昨天生成的。
但您应该明白我的意思。
00:38:28.110 --> 00:38:30.950
您可以回看过去的事。这些是事务。
00:38:31.000 --> 00:38:34.700
这些是发生的真正发布,
00:38:34.750 --> 00:38:38.210
所有这些输出都持久保存到数据库,我有相关的历史记录。
00:38:38.260 --> 00:38:40.890
今天一开始我们讲过另一个方法,
00:38:40.940 --> 00:38:44.650
就是使用发布流程了解所发生的事。
00:38:44.700 --> 00:38:47.410
了解是否进行了恰当的审核。
如果您要建立自定义生成流程,
00:38:47.460 --> 00:38:50.350
可能会保存生成日志。
00:38:50.400 --> 00:38:52.250
可能有一些相关的报告。
00:38:52.250 --> 00:38:54.630
但这些都是开箱即用的。
00:38:56.770 --> 00:38:59.900
另外展示几个内容:注意这里还有一个筛选器,
00:38:59.950 --> 00:39:05.140
选项有 Anytime、Today,我可以选择查看过去 24 个小时的发布。
00:39:05.840 --> 00:39:09.720
我可以使用高级筛选器,
00:39:09.770 --> 00:39:13.190
仅查找某些发布模板。
00:39:13.240 --> 00:39:16.830
比如查找发布的数据库。
00:39:16.880 --> 00:39:21.460
这提供浏览、查找旧发布的卓越用户体验。
00:39:21.510 --> 00:39:25.070
还有上面的 Traffic Overview:
00:39:25.120 --> 00:39:28.340
单击 Traffic Overview。
00:39:29.200 --> 00:39:32.700
在底部可以看到有各种通知被发送出去。
00:39:32.750 --> 00:39:36.390
右下角有查看详细信息的链接。
00:39:36.440 --> 00:39:39.580
单击该链接。抱歉。
00:39:40.280 --> 00:39:43.580
我已经单击过这个链接上百次了。
我可以看到错误消息,
00:39:43.630 --> 00:39:44.810
这只是另一个视图。
00:39:45.670 --> 00:39:49.860
其中显示至少有一个组件安装失败。
这是安装失败的组件。
00:39:49.910 --> 00:39:53.020
并且解释了原因。
00:39:53.070 --> 00:39:55.150
这条错误消息帮助我弄清了错误原因,
00:39:55.200 --> 00:39:58.350
即我此时指向了一个不正确的放置位置。
我目前是在 Traffic Overview 页面上。
00:39:58.400 --> 00:40:01.780
工具本身的界面有点暗。
00:40:01.830 --> 00:40:05.540
然后这里是我的发布路径。
00:40:05.590 --> 00:40:08.770
我有 QA 发布路径,Dev 发布路径。
有 Full Monty 和 Full Monty 2,
00:40:08.820 --> 00:40:11.640
其中有 Dev 和 QA 阶段。
00:40:11.690 --> 00:40:20.580
总之这里通过流量监视器提供很多有关历史发布的信息。
00:40:21.220 --> 00:40:22.380
我的机器重启完了。
00:40:22.430 --> 00:40:24.710
你的机器又上线了。我们转到 Krithika 这边。
00:40:24.760 --> 00:40:31.870
先启动我的客户端。
00:40:32.840 --> 00:40:34.870
机器刚刚上线……
00:40:34.920 --> 00:40:40.250
不像我宣传的那么快,不过也不差。
00:40:40.800 --> 00:40:44.230
我可以忍受。正如 Mike 提到的,
00:40:44.280 --> 00:40:47.850
Traffic Overview 视图中显示很多信息。
00:40:48.690 --> 00:40:50.940
接下来我要启动另一个发布,
00:40:50.990 --> 00:40:55.470
因为前面有三个失败的发布。
00:40:56.600 --> 00:40:59.360
我停止了上一个发布,下面启动另一个发布。
00:40:59.410 --> 00:41:02.210
创建一个新发布。
00:41:03.950 --> 00:41:06.200
澄清一点,我们目前为止所变动的就是,
00:41:06.250 --> 00:41:10.170
将 RMAgent 添加为管理员,重启了机器。
00:41:10.220 --> 00:41:11.600
没错。我只做了这些。
00:41:13.680 --> 00:41:14.640
00:41:14.690 --> 00:41:18.170
再次选择发布模板。
00:41:18.220 --> 00:41:18.890
00:41:18.940 --> 00:41:21.880
使用最新的生成。
00:41:23.360 --> 00:41:28.440
然后单击 Start。祈祷这次会成功。
00:41:30.080 --> 00:41:31.830
我有信心。
00:41:33.200 --> 00:41:34.380
马上就会知道。
00:41:36.560 --> 00:41:38.540
如果不现成设置好的话,代理可能有点难搞定。
00:41:42.800 --> 00:41:45.320
这是我们要证明的。
00:41:46.270 --> 00:41:49.310
我们会探讨有关代理的更多内容,
00:41:49.360 --> 00:41:52.360
讨论代理不在同一个域中的情况。
00:41:52.410 --> 00:41:53.930
00:41:55.300 --> 00:41:57.620
继续单击 Details。
00:41:58.660 --> 00:41:59.730
发布还在进行中。
00:42:00.500 --> 00:42:03.210
好了。这是我想看到的结果。
00:42:03.990 --> 00:42:05.050
不管怎样有一部分成功了。
00:42:05.100 --> 00:42:08.890
看起来 Dev 阶段成功了。先缩小画面,
00:42:08.940 --> 00:42:10.810
显示 Dev 阶段。
00:42:11.400 --> 00:42:13.760
可以看到工作流开始运行。这在 QA 中发生。
00:42:13.810 --> 00:42:16.950
QA 中正在处理一些工作。
00:42:17.000 --> 00:42:17.300
00:42:17.350 --> 00:42:20.570
现在感觉好多了。
00:42:20.620 --> 00:42:22.840
下面打开 IIS 管理器。
00:42:23.400 --> 00:42:25.290
谁喜欢毫无疑难的演示呢?
00:42:25.780 --> 00:42:26.530
00:42:27.350 --> 00:42:30.850
你的部分管道没有问题。Dev 中没问题,
00:42:30.900 --> 00:42:33.230
但 QA 中可能出现问题。看起来……
00:42:33.280 --> 00:42:35.460
看起来系统正在 QA 中完成一些工作。
00:42:35.510 --> 00:42:36.800
这些是我的应用程序池。
00:42:36.850 --> 00:42:39.150
对,这些是我的应用程序池。
00:42:39.200 --> 00:42:44.230
然后展开 Sites,其中创建了 JS-Dev 和 JS-QA。
00:42:44.280 --> 00:42:47.340
目前为止一切操作都是自动化的。
00:42:47.390 --> 00:42:51.010
目前我们没有部署任何审批流程。
00:42:51.060 --> 00:42:54.120
Bob 将一切操作都设置为自动化,
00:42:54.170 --> 00:42:56.320
所以不用干预或审批任何操作。
00:42:56.370 --> 00:42:59.670
我喜欢 Bob。大爱自动化。
00:43:00.520 --> 00:43:02.790
可以看到所有步骤都完成了。
所有步骤后面都显示 Done,
00:43:02.840 --> 00:43:05.450
这让我感觉很棒。
00:43:06.160 --> 00:43:09.020
如果再次单击 Details,
00:43:09.070 --> 00:43:12.820
可以看到我们先前讲过的日志。
如果我单击 View Log 选项,
00:43:12.870 --> 00:43:15.110
这将打开一个文本文件,
00:43:15.160 --> 00:43:15.830
里面的信息非常详细。
00:43:15.880 --> 00:43:18.250
里面没有提供太多信息。
00:43:18.300 --> 00:43:21.050
但可以提高详细程度。
我们可以提高详细程度,稍后展示。
00:43:21.100 --> 00:43:25.000
没错。所有活动都成功了。
00:43:25.050 --> 00:43:28.230
可以看到发布模板中的所有不同活动。
00:43:28.280 --> 00:43:33.230
分别是 Create App Pool、Create Website 和 JS-Deployer。
00:43:33.230 --> 00:43:36.310
如果有失败发生,您会知道发生在哪里。
00:43:36.360 --> 00:43:38.450
这是我们的部署日志。
00:43:38.500 --> 00:43:39.110
00:43:39.160 --> 00:43:39.660
00:43:40.270 --> 00:43:49.580
发布完成了。下面展示文件被复制到的目录。
00:43:51.310 --> 00:43:54.030
下面展示文件被复制到的目录。
00:43:54.080 --> 00:43:56.510
我们有很多其他东西要探讨和展示。你刚才完成了发布。
00:43:56.560 --> 00:44:00.110
你创建了一些目录并在里面放了一些文件。
00:44:00.160 --> 00:44:04.700
没错。深入文件夹里面,可以看到所有文件都显示在这里。
00:44:04.750 --> 00:44:08.100
明白了。这是一个发布场景。
00:44:08.150 --> 00:44:11.670
但如果工作流的一部分出了问题,
00:44:11.720 --> 00:44:14.230
您会想要回滚。
00:44:14.280 --> 00:44:18.600
我们稍后对此进行探讨,
00:44:18.650 --> 00:44:22.610
但实质上回滚要么行得通,要么行不通。
在某些情况下如果回滚行不通,
00:44:22.870 --> 00:44:25.330
其实不是回滚的问题。
00:44:25.380 --> 00:44:28.040
许多人说,我们每 10 分钟发布一次。我们前滚吧。
00:44:28.090 --> 00:44:32.330
如果是代码有问题,
00:44:32.380 --> 00:44:34.460
那么重新部署代码。
00:44:34.510 --> 00:44:37.520
回滚的原因有很多。
00:44:37.570 --> 00:44:42.710
发布管道或发布流程可能没有问题。
00:44:42.760 --> 00:44:44.920
您想要回滚也许是因为您部署了应用程序,
00:44:44.970 --> 00:44:48.130
突然间信用卡号显示在您的网站上。
00:44:48.180 --> 00:44:50.310
这问题就严重了,
00:44:50.360 --> 00:44:52.280
此时不能等待前滚,只能回滚。
00:44:52.330 --> 00:44:54.830
稍后我们会讨论这些不同的场景。
00:44:54.880 --> 00:44:56.770
休息过后,Krithika,
00:44:56.820 --> 00:45:00.380
你可能要演示使用生成系统进行持续交付。
00:45:00.430 --> 00:45:03.190
没错。我们会打开生成定义。
00:45:03.240 --> 00:45:06.530
看一下特定于 Release management 的生成过程模板,
00:45:06.580 --> 00:45:08.140
我们会进行相关的一些演示。
00:45:08.190 --> 00:45:11.240
下面我们休息片刻。稍后见。}

我要回帖

更多关于 html 必填字段 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信