17.3 网站部署和发布
部署是指将应用程序从开发环境移植到运行环境的过程。在部署网站之前需要进行两个操作:首先需要在Web.config配置文件中关闭调试功能,因为调试功能打开会降低应用程序的性能;其次需要使用Release(发行版)方式编译应用程序(直接单击工具栏中的配置即可)。
下面通过两种方式介绍如何将一个开发好的网站部署到目标环境。
17.3.1 通过“发布网站”工具发布
“发布网站”工具可以将某些源代码编译为程序集,然后将这些程序集和其他必需的文件复制到指定的文件夹,可以使用任何所需的方法将文件复制到其他服务器。这种方式经常被使用到,通过这种方式发布的网站没有源代码,即不会显示.aspx.cs文件及其内容。
“发布网站”工具对网站内容进行预编译,然后将输出复制到所指定的目录或服务器位置。使用文件传输协议(FTP)或HTTP,可以将输出写入本地或内部网络文件系统中可用的任何文件夹中。必须具有相应权限才能向目标网站写入,可以在发布过程中直接发布到Web服务器,也可以预编译到本地文件夹,然后自己将文件复制到Web服务器。
“发布网站”工具通常适用于以下两种情况。
(1)希望预编译站点以避免将源代码或标记放在Web服务器上,这有助于保护知识产权。
(2)希望进行预编译,以避免Web服务器首次请求某页时由动态编译引发的延迟。在决定此原因需要预编译站点之前,应该测试站点以确定此延迟是否显著。
【范例16】
使用VS 2012创建一个使用默认示例的ASP.NET Web应用程序,假设该应用程序名称为WebApplication3。使用“发布网站”工具发布该应用程序的步骤如下。
(1)在VS 2012中打开WebApplication3所在解决方案。
(2)从【解决方案资源管理器】窗格中右击WebApplication3,选择【发布网站】命令,打开【发布Web】对话框。
(3)新建一个名为default的配置文件,如图17-3所示。
图17-3 新建配置文件
(4)单击【确定】按钮,再单击【下一步】按钮,从【发布方法】下拉列表中选择一种发布方式。默认提供了5种发布方式,分别是:Web Deploy、Web Deploy包、FTP、文件系统和FPSE。在这里选择【文件系统】选项,将网站发布到本地磁盘。
(5)单击【目标位置】文本框后的按钮,在弹出的【目标位置】对话框中指定一个网站发布后存放的目录,这里为C:\inetpub\wwwroot\WebSite1,如图17-4所示。
图17-4 指定网站存放目录
(6)然后为指定的目录设置一个目标URL,该URL必须能访问到网站目录,否则将出错。这里设置目标URL为http://localhost,如图17-5所示。
图17-5 设置目标URL
(7)单击【下一步】按钮,从【配置】列表中选择Release选项,即配置为发布版本,该版本通常对代码和配置进行了优化,使得应用程序可以更快地运行。另一个选项是Debug,即配置为调试版本,该版本通常用于开发时,可以帮助开发人员跟踪和调试程序,并不做任何优化,如图17-6所示。
图17-6 指定配置信息
(8)单击【下一步】按钮,进入发布前的预览界面,如图17-7所示。
图17-7 预览发布
(9)单击【发布】按钮确认发布。在发布过程中VS 2012的【输出】窗格中会实时显示正在发布的文件夹,以及最终的发布状态,如图17-8所示。
图17-8 查看发布内容
(10)发布成功之后,打开C:\inetpub\wwwroot\WebSite1目录,将看到发布之后输出的最终文件。
【范例17】
下面在IIS下对发布后的网站进行测试,并设置为发布时指定的URL。这里以Windows 7系统下的IIS为例,具体安装过程忽略。步骤如下。
(1)从控制面板中打开Internet信息服务管理器(简称IIS)。
(2)从左侧窗格中展开【网站】节点下的Default Web Site选项,从右侧窗格中单击【基本设置】链接。
(3)在弹出的【编辑网站】对话框中将网站物理路径设置为C:\inetpub\wwwroot\WebSite1,如图17-9所示。
图17-9 设置默认网站的根目录
(4)指定路径之后单击【确定】按钮。由于使用VS 2012发布的网站是使用的.NET Framework 4.0版本,而IIS默认使用的是.NET Framework 2.0,所以此时浏览网站将会看到错误。解决方法是,在IIS的左侧窗格选中最顶层的节点(默认为当前机器名称),再从右侧窗格中单击【更改.NET Framework版本】链接,在弹出的对话框中选择4.0版本,如图17-10所示。
图17-10 更改IIS的默认.NET Framework版本
(5)更改默认网站使用应用程序池的.NET Framework版本。方法是从左侧窗格中选择【应用程序池】节点,在【功能视图】列表中选择DefaultAppPool选项,再从右侧窗格中单击【设置应用程序池默认设置】链接。
(6)在打开的【应用程序池默认设置】对话框中,将.NET Framework版本更改为V4.0,如图17-11所示。
图17-11 更改应用程序池的.NET Framework版本
【范例18】
除了上面的几个步骤外,还需要在本机上为IIS安装.NET Framework 4.0。方法是打开【命令提示符】窗口,进入.NET Framework 4.0的安装目录。以Windows 7系统为例,目录为C:\Windows\Microsoft.NET\Framework\v4.0.30319,命令如下。
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
再运行如下命令进行安装。
aspnet_regiis.exe -i
安装成功之后,将看到如图17-12所示提示信息。
图17-12 安装成功
在浏览器中输入http://localhost/default.aspx,将看到发布后网站的运行效果,如图17-13所示。
图17-13 发布后网站运行效果
17.3.2 通过“复制网站”工具发布
“复制网站”工具可以帮助自动完成在打开的网站项目和其他站点之间复制和同步文件的过程。利用复制网站工具,可以打开目标站点上的文件夹(它可能在远程计算机上或仅是同一计算机上的不同文件夹),然后在源网站和目标网站之间复制文件。
“复制网站”工具主要支持以下功能。
(1)可以将源文件(包括.aspx文件和类文件)复制到目标站点,在目标服务器上请求网页时动态编译这些网页。
(2)可以使用Visual Studio所支持的任何连接协议复制文件。这包括本地IIS、远程IIS和FTP。如果使用HTTP,则目标服务器必须具有FrontPage服务器扩展。
(3)同步功能检查源网站和目标网站中的文件,通知每个站点中哪些文件较新,并使开发人员能够选择要复制哪些文件以及要按照哪个方向复制它们。
(4)在复制应用程序文件之前,此工具将名为App_offline.htm的文件放置在目标网站的根目录中。当App_offline.htm文件存在时,对网站的任何请求都将重定向到该文件。该文件显示一条友好消息,让客户端知道正在更新网站。复制完所有网站文件后,这种工具从目标网站删除App_offline.htm文件。
通过“复制网站”工具发布网站项目时有两种方式:一种是选择当前网站后右击选择【复制网站】菜单项;另一种是在菜单栏中选择【网站】|【复制网站】菜单项进行发布。
【范例19】
通过“复制网站”的方式将一个ASP.NET网站发布到指定的磁盘目录下。操作步骤如下。
(1)打开要发布的ASP.NET网站。从菜单栏中选择【网站】|【复制网站】菜单项,如图17-14所示。
图17-14 在菜单栏中找到【复制网站】菜单项
(2)这时会打开【复制网站】窗格,单击【连接】按钮,在弹出的【发布网站】对话框指定路径为C:\inetpub\wwwroot\WebSite2。
(3)从【源网站】列表中选中所有文件,然后再单击相关的按钮复制到右侧的远程网站,复制完成后的效果如图17-15所示。
图17-15 复制网站完成后的效果
(4)发布完毕后,在IIS服务器中找到C:\inetpub\wwwroot\WebSite2目录,打开该目录下的所有文件并且浏览查看,具体的效果图不再显示。