自定义动作。使用该编辑器来指定在特定的动作被选择后应该执行哪个程序。这个功能对于安装将来的组件或创建特定的数据库对象来说非常有用。这些动作在特定的事件发生时运行,例如:
| • |
安装应用程序 |
| • |
提交 |
| • |
安装回滚 |
| • |
卸载应用程序 |
图 10 :定义自定义动作
启动条件。使用该编辑器指定检查目标机器上的那些条件。
图 11 :定义启动条件
安装项目配置
安装项目属性页用来访问配置设置。要访问该页,在项目上下文菜单中选择属性,如图 12 所示:
使用该配置页,可以确定生成配置和创建结果文件的文件夹。这些文件可以以不同的方式创建,如图 13 所示:
图 13 :定义如何打包安装文件
使用图 14 所示的引导选项,可以选择将提供哪种类型的 Windows 安装程序(在目标机器需要时)。
图 14 :选择引导
如同任何 .NET 项目一样,该安装项目可以在大小和速度上进行优化,如图 15 所示:
图 15 :选择压缩优化类型
安装文件
生成安装项目的过程中在 Debug 或 Release 文件夹(视所选的生成类型而定)下创建了以下文件,如表 1 所示:
表 1 安装中创建的文件
|
YourSetupProgram.msi |
该文件是 Windows 安装程序所需的安装程序数据库,用来安装您的应用程序。
如果目标系统上已经安装了 Windows 安装程序,那么只需发布者一个文件。但是推荐您发布整个文件集以确保在没有 Windows 安装程序的系统上也能够进行安装。 |
|
InstmsiA.exe |
该程序在 Windows 95/98/Me 上安装 Windows 安装程序 |
|
InstmsiW.exe |
该程序在 Windows NT/2000/XP/.NET 上安装 Windows 安装程序
注意 Windows 2000 、 XP 、以及 Microsoft Windows Server 2003 已经含有 Windows 安装程序,但是该发布文件可能包含更新的版本。 |
|
setup.exe |
该程序执行 Windows 安装程序以使用所提供的 .msi 文件安装您的应用程序。
该程序检查系统中是否有 Windows 安装程序可用,如果没有则进行安装,然后再安装应用程序。 |
|
Setup.ini |
该文件是 setup.exe 所用的配置文件,用来指定 .msi 文件 |
部署 .NET 框架
要在特定的计算机中执行为 .NET 框架设计的应用程序或服务,该计算机需要安装 .NET 框架。由于目前所有的 Microsoft 平台都不包含 .NET 框架,因此第一步就是确定目标计算机上 .NET 框架是否可用。
运行任何版本 Microsoft Windows Server 2003 的计算机都已经安装了 .NET 框架,因为它是标准操作系统安装过程中的一部分。运行 Microsoft Windows XP 的计算机可以通过 Microsoft Windows Update Web 站点安装 .NET 框架。推荐使用 Microsoft Windows Update Web 站点来更新 .NET 框架的最新服务包或新发行版本。
对于运行其它平台的计算机来说,通过 Dotnetfx.exe 应用程序来实现 .NET 的重新发布。目前它可以从下列位置和产品获得:
不要在您的 intranet 或 Web 站点上重新发布 .NET 框架。将用户引导到 Microsoft Windows 更新 Web 站点,为他们提供最新版本的组件。
该重新发布将安装所有服务器和客户端所需要的组件。 .NET 框架重新发布包支持如下平台:
| • |
Windows 98 |
| • |
Windows 98 第二版 |
| • |
Windows ME |
| • |
Windows NT 4.0 (工作站版或服务器版) Service Pack 6 |
| • |
Windows 2000 (Professional 、 Server 、或 Advanced Server) |
| • |
Windows XP (家庭版和专业版) |
| • |
Windows Server 2003 |
>要运行 .NET 框架组件,还需要
| • |
>Internet Explorer 5.01 以上版本。您可以从以下位置下载 Internet Explorer 的最新版本
|
| • |
>Windows 安装程序 2.0 以上版本。 可以从以下位置下载最新版本的 Windows 安装程序
>注意 Windows XP 和 Windows Server 2003 已经包括了这个新版本。但是,检查 Microsoft Windows 更新 Web 站点上的更新是一个好主意 |
| • |
>服务器数据访问组件(推荐 MDAC 2.7 )。可以从以下位置下载这些组件的最新版 http://www.microsoft.com/data/download.htm> |
| • |
>Internet 信息服务 (IIS) 安装在 Windows 2000 、 Windows XP (专业版)、和 Windows Server 2003 (运行 ASP.NET 应用程序) |
>服务器端部署
ASP.NET 应用程序和 Web 服务被设计作为服务器组件运行,通常运行于本地或远程网络中的中心计算机上。要运行这些应用程序和服务,必须确保满足所有先决条件。运行 Windows Server 2003 操作系统的服务器包含了所有运行 .NET 应用程序的先决条件。
如果要部署的应用程序不使用客户端组件,就只需要部署服务器端。在这种情况下,这些应用程序提供的功能将由 Internet 浏览器或 Windows 应用程序使用,与 .NET 应用程序相关的任何过程都不包含“宿主”应用程序。
确定需求
要确保 .NET 服务器应用程序运行时的性能,您应该观测表 2 所列出的需求:
表 2 部属 .NET 应用程序的服务器需求
|
支持的操作系统 |
Microsoft® Windows® 2000 专业版加 Service Pack 2.0
Microsoft® Windows® 2000 服务器版加 Service Pack 2.0
Microsoft® Windows® 2000 高级服务器版加 Service Pack 2.0
Microsoft® Windows® XP 专业版
Microsoft® Windows Server 2003 Web 服务器
Microsoft® Windows Server 2003 标准服务器
Microsoft® Windows Server 2003 企业服务器 |
|
要使用 SQL Server .NET DataTo use the SQL Server .NET 数据提供程序 |
Microsoft 数据访问组件 (MDAC) 2.7 。
该组件的最新版本可以在以下位置下载:
http://msdn.microsoft.com/library/default.asp?url=/downloads/list/dataaccess.asp. |
|
要运行 ASP.NET 应用程序 |
Microsoft IIS 5.0 以上版本(Windows XP Pro 包含 5.1 版, Windows Server 2003 包含 6.0 版。) |
|
处理器 |
最低需求为 Intel Pentium 或相同能力 133 MHz 以上,如同已安装的 Windows 所需。
如果期望高负荷水平,推荐在多处理器机器上使用 Pentium III XEON
>由于 .NET 服务器组件将被多个用户重复执行,因此需要处理器具有相应的能力。处理器连续加速,速度通常高于 2 MHz |
|
内存 |
>最低需求为 128 MB ,或者更大,如同已安装的 Windows 所需
>推荐使用尽可能大的内存以发挥 .NET 框架高级缓冲功能的优势 |
|
>存储空间 |
>对于存储空间没有特殊需求,只要满足已安装的 Windows 的一般需求和组成应用程序的文件大小
>为了优化磁盘访问并为存储子系统提供容错能力,推荐在可能的情况下使用高质量的 SCSI 磁盘和 RAID 配置
>配置为 Web farm 带有 Windows 负载平衡服务 (WLBS) 的系统可以受益于网络存储系统,例如 SAN 或 NAS 设备 |
|
>网络 |
>网络需求基于所期望的工作负荷和带宽利用而定
>网络需求对于内部客户端和远程客户端是不同的。但是,这些需求的管理依赖于纯粹的网络管理。Network requirements will be different for the internal clients than for remote clients. However, the management of these requirements relies on pure network administration |
>客户端部署
>ASP.NET 应用程序和 Web 服务被设计作为服务器组件运行。客户端设备使用宿主应用程序,例如 Internet Explorer ,来运行这些 .NET 应用程序,或者它会运行一个 .NET 应用程序来远程使用这些服务。运行 Windows Server 2003 操作系统的服务器包含了将 .NET 应用程序作为客户端设备运行的所有先决条件
在某些情况下, .NET 应用程序需要部署客户端组件,在这种情况下的部署所要考虑的问题与部署 .NET 服务器应用程序非常相似。
确定需求
为了确保运行于客户端的 .NET 应用程序的功能和性能,您因该观测表 3 列出的需求。
表 3 运行 .NET 的客户端需求
|
支持的操作系统 |
Microsoft® Windows® 98
Microsoft® Windows® 98 第二版
Microsoft® Windows® Me
Microsoft® Windows® NT 4.0 工作站版加 6.0a 以上 Service Pack
Microsoft® Windows® NT 4.0 服务器版加 6.0a 以上 Service Pack
Microsoft® Windows® 2000 专业版
Microsoft® Windows® 2000 服务器版
Microsoft® Windows® 2000 高级服务器版
Microsoft® Windows® XP 家庭版
Microsoft® Windows® XP 专业版
Microsoft® Windows Server 2003 Web 服务器
Microsoft® Windows Server 2003 标准服务器
Microsoft® Windows Server 2003 企业服务器 |
|
Internet 浏览器 |
Microsoft® Internet Explorer 5.01 以上版本 |
|
Windows® 安装程序 |
Microsoft® Windows® 安装程序 2.0 以上版本 |
|
要使用 SQL Server .NET 数据提供程序 |
MDAC 2.7.
该组件的最新版本可以在以下位置下载:
http://msdn.microsoft.com/library/default.asp?url=/downloads/list/dataaccess.asp. |
|
访问系统管理信息 |
Windows 管理规范 (WMI)(同 Windows 2000 、 Windows Me、 Windows XP 、以及 Windows Server 2003 一起安装) |
|
COM+ 服务 |
Windows 2000 Service Pack 2.0 、或 Windows XP 、或 Windows Server 2003 |
|
要运行 ASP.NET 应用程序 |
Microsoft IIS 5.0 或以上版本(Windows XP Pro 包含 5.1 版, Windows Server 2003 包含 6.0 版) |
|
处理器 |
最低需求为 Intel Pentium 或相同能力 90 MHz 或以上,如同已安装的 Windows 所需。
当运行包含客户端组件的 .NET 应用程序时,推荐使用高于最低要求的 Pentium III/IV 处理器。 |
|
内存 |
最低要求为 32 MB 以上,如同已安装的 Windows 所需。
推荐使用尽可能大的内存以发挥 .NET 框架高级缓冲功能的优势 |
|
存储空间 |
对于存储空间没有特殊需求,只要满足已安装的 Windows 的一般需求和组成应用程序的文件大小 |
|
网络 |
网络需求基于带宽利用而定。 |
安全性考虑
Web 服务上的验证和授权遵循与 ASP.NET 应用程序授权和验证相同的规则。表 4 总结了不同的验证方法。
表 4 验证方法
|
Windows – 基础 |
该方法用基 64 字符串发送用户名和密码,但是不加密。因此,网络监视工具可以截该获数据并危及应用程序或服务的安全。 |
|
建立于 SSL 上的 Windows – 基础 |
用户安全套接字层 (SSL) 将用户名和密码加密传送到 Internet ,它容易配置但是降低了性能。 |
|
Windows – 摘要 |
通过哈希技术对 Internet 客户进行安全鉴别,也通过代理服务器,但是在其它平台上并不常用。 |
|
Windows - 集成 Windows |
使用 NTLM 或 Kerberos 。与 Microsoft Internet Explorer 的通信使用了 NTLM 或 Kerberos 密码标准进行了加密。 |
|
Windows - 客户证书 |
为 Intranet 和 Internet 用户提供安全验证。每个客户都需要一份相互信任证书。证书也可以映射到 Windows 账户上,在该情况下 IIS 能够自动验证对于 Web 服务的访问。 |
|
表单 |
使用 HTTP 客户端重定向在 HTTP Uses HTTP 表单上提供验证。Web 服务不直接支持它。 |
|
SOAP 头 – 自定义 |
通过在 SOAP 头中传递凭据而提供平台无关的对 Web 服务的验证和非验证访问。 |
安全配置文件。 .NET 应用程序的安全配置文件安装在表 5 所列出的位置。
表 5 配置文件的位置
|
企业策略 |
|
|
Windows 2000 |
%运行时安装目录%\Config\Enterprisesec.config |
|
Windows NT |
%运行时安装目录%\Config\Enterprisesec.config |
|
Windows 98 和 Windows ME |
%运行时安装目录%\Config\Enterprisesec.config |
|
机器策略 |
配置文件 |
|
Windows 2000 |
%运行时安装目录%\Config\Security.config |
|
Windows NT |
%运行时安装目录%\Config\Security.config |
|
Windows 98 和 Windows ME |
%运行时安装目录%\Config\Security.config |
|
用户策略 |
配置文件 |
|
Windows 2000 |
%USERPROFILE%\Application data\Microsoft\CLR security config\vxx.xx\Security.config |
|
Windows NT |
%USERPROFILE%\Application data\Microsoft\CLR security config\vxx.xx\Security.config |
|
Windows 98 和 Windows ME |
%WINDIR%\用户名\CLR security config\vxx.xx\Security.config |
为了避免安全文件损坏,您应该使用以下工具:
| • |
.NET 框架配置工具 (Mscorcfg.msc) |
| • |
代码访问安全策略工具 (Caspol.exe) |
配置 .NET 应用程序
.NET 应用程序配置位于几个文件中,我们将在以下部分详细叙述。该部分的目的是提供关于这些文件的位置信息,解释他们的目的和主要组成部分。
配置文件是标准的 XML 文件。配置设置使用 XML 标签被安排为一套预定义元素。如果要直接编辑配置文件需要熟悉 XML ,请记住 XML 标签和属性是大小写敏感的。
每个配置文件都使用了一个 <configuration> 格式如下:
<configuration>
<!-- configuration settings -->
</configuration>
该元素可能包含一些子元素,如表 6 所示。该表显示了这些配置文件中不同的部分以及这些部分由那些元素所定义。
可以在以下位置找到这些 XML 配置文件的一些例子:
表 6 .NET 配置文件的内容
机器配置文件。 machine.config 文件在 %runtime install path%\Config 目录下,包含影响整个安装 .NET 的机器的设置。由于这个原因,将应用程序设置存储在不同的位置会更加方便,稍候将进行讨论。
使用 Windows 安装程序部署 .NET 应用程序能够自动对 machine.config 文件应用更新,但是使用 XCOPY 部属则不行。
应用程序配置文件。 CLR 首先在应用程序配置文件中搜索应用程序设置,然后再搜索机器配置文件。应用程序配置文件的名称和位置依赖于应用程序宿主,它可以是以下之一:
| • |
可执行宿主应用程序。 一个可执行宿主包含的应用程序的配置文件与应用程序再同一个目录下。配置文件的名字是应用程序的名字加上 .config 扩展名。例如一个名位 myApp.exe 的应用程序的配置文件叫做 myApp.exe.config 。
下面是示例应用程序配置文件 (caspol.exe.config) : <?xml version ="1.0"?>
<configuration>
<startup>
<requiredRuntime safemode="true" imageVersion="v1.0.3705" version="v1.0.3705" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<publisherPolicy apply="no"/>
</assemblyBinding>
</runtime>
</configuration>
|
| • |
ASP.NET 宿主应用程序 ASP.NET 配置文件名为 Web.config 。 ASP.NET 应用程序的配置文件继承URL 路径中配置文件设置 。例如 URL www.nwtraders.msft/marketing/year2002 , www.nwtraders.msft/marketing是 Web 应用程序,与之对应的配置文件存放在 www.nwtraders.msft/marketing 。 子目录 /year2002 下的ASP.NET 页面同时使用应用程序级别和 /year2002 下的配置文件设置。关于 ASP.NET 配置文件的更多信息,请查阅 http://msdn.microsoft.com/library/en-us/cpguide/html/cpconaspnetconfiguration.asp. |
| • |
Internet Explorer 宿主应用程序 如果宿主于 Internet Explorer 的应用程序拥有配置文件,那么该文件的位置在下面标签中指定: <link> tag with the following syntax: <link rel="Configuration" href="location">.
在该标签中, href 告诉 Internet Explorer 配置文件的 URL 。配置文件必须与应用程序位于同一个 Web 站点上。 |
部署 Web 服务
前面所有叙述应用于任何类型的 .NET 应用程序和服务。但是,对于 Web 服务还有一些特别要注意的地方。
部署一个 XML Web 服务包括将 .asmx 文件和该 XML Web 服务所用到的任何程序集拷贝到 Web 服务器上,但是不包括 Microsoft .NET 框架的那部分。例如,如果要部署一个名为 StockServices 的 XML Web 服务,要在 Web 服务器上创建一个虚拟目录并将该服务的 .asmx 文件放置于此。虚拟目录也是一个 IIS Web 应用程序,虽然不是必需的。这样一个应用程序的树形结构是:
\Inetpub
\Wwwroot
\StockServices
StockServices.asmx
\Bin
Under \Bin ,可以对所有非 Microsoft .NET 框架部分而由 XML Web 服务使用的程序集添加引用。
与 Web 服务一起部署的项目
发布一个 XML Web 服务时,表 7 中的项目也被部署到 Web 服务器上。Service, the following items in Table 7 are deploye
tting role="bold">表 7
部署 .NET 应用程序使用的 SQL Server 数据库
某些 .NET 应用程序和 Web 服务使用 SQL Server 数据库来存储应用程序数据。应该定义部署过程来自动安装所有需要存储的项目,可以使用下列任何策略:
| • |
使用任何可用的 SQL Server. 如果已经有 .NET 应用程序运行了 SQL Server ,该应用程序可以配置为在服务器上存储数据,安装程序应该提供选项来指定下列设置(通过用户界面或配置设置):
| • |
SQL Server 运行所在的服务器,如果需要包括实例名称。应该直接写要连接的服务器实例的名称或 IP 地址和端口号(格式为 nnn.nnn.nnn.nnn, pppp )。可选的,程序可以提供一个搜索按钮来搜索可用的 SQL Server 实例。 |
| • |
数据库名。根据应用程序的需要,可以是一个已存在的数据库或新数据库。如果需要新数据库,安装程序可以连接一个现存的数据库文件(作为安装程序的一部分部署)。 |
| • |
验证方法。应该提供 SQL Server 验证 (提供用户名和密码) 或 Windows 集成验证。 | |
| • |
安装一个新的 SQL Server 实例 这种安装基于安装或配置过程中特定的输入。关于安装设置 SQL Server 的特别向导,请参阅 SQL Server 部署 Web 站点 http://www.microsoft.com/sql/techinfo/deployment/2000/default.asp |
| • |
安装新的 SQL Server 桌面引擎。 如果部署数据库的唯一目的是为将部署的 .NET 应用程序提供服务,那么可以安装简便的 SQL Server 桌面引擎。按照许可证中定义的使用指南,该 SQL Server 版本不需要任何服务器或客户端访问许可证。只要开发者持有合法的许可证使用 SQL Server 桌面引擎开发应用程序而且桌面引擎的性能能够满足需要,它就是一个优秀的解决方案。要了解关于 SQL Server 桌面引擎更多的信息,访问以下 Web 站点: http://www.microsoft.com/sql/msde/default.asp。关于怎样将 SQL Server 桌面引擎迁入自定义应用程序的特别信息可以在以下位置找到: http://msdn.microsoft.com/library/en-us/dnsql2k/html/sql_embeddingmsde.asp。 |
连接 SQL Server 数据库
如果 .NET 应用程序的部署包括 SQL Server 数据库,如此部署的最简单方法是使用 SQL Server 的连接数据库功能。下面是部署一个将要连接到现存或新安装的 SQL Server 的 SQL Server 数据库的步骤:
总结
Microsoft .NET 框架为开发者提供了一个强大的可扩展的平台来生成安全的、可伸缩的解决方案。.NET 框架 还扩展了 Windows 2000、IIS、以及 SQL Server 已有的某些功能,但是这些新的解决方案的部署与过去有着很大的区别。本文提供了关于如何使用 Windows 安装程序和 XCOPY 的方式部署 .NET 应用程序的详尽说明。但是本文最重要的目标是强调在部署过程中进行谨慎地设计和测试以在最终产品环境中成功地进行部署。