Installshield 12 中文系列教程之 配置服务 (三)配置IIS
管理Internet信息服务
Internet 信息服务(IIS )是微软开发的WEB 服务器。它提供了一个安全的平台,支持编译开发基于WEB 的应用程序,管理WEB 站点,发布Internet 或者internat 信息。IIS 是包含在 Windows2000 或者更高服务器版本和Windows XP 操作系统中。只有在目标机器上用户有管理员权限,并且安装了IIS , InstallShield 才能支持IIS 。
在一个含有IIS 设置的安装程序运行期前,InstallShield 会在目标机器上检测IIS 是否存在。如果没有安装IIS ,安装程序会显示一个对话框,提示用户他没有安装IIS 并询问是否想安装IIS 再继续。如果用户不安装IIS ,安装程序继续执行,但是不会创建虚拟目录。
提示:
- IIS6.0只有在Windows Server 2003平台下支持。在一个Windows Server 2003系统上,如果没有安装IIS6,那么其他的IIS目录和站点将仍然创建,但是将跳IIS6.0特殊的项目。
- Windows XP Professional 上的IIS5.1只能运行一个WEB站点,这是IIS5.1的限制。
- InstallShield支持4.0或者更高版本的IIS。不支持NT服务器上的或者工作站上的IIS。
创建一个WEB站点并添加虚拟目录
如果你想在InstallShield 项目中创建一个应用程序池并想关联到一个虚拟目录或者WEB 站点,你必须在同一构件中创建应用程序池、虚拟目录或WEB 站点。这样可以确保应用程序池先于虚拟目录或WEB 站点创建。这是IIS6 的需求并不是 Basic MSI 或者InstallScript MSI 项目的限制。
要在安装程序运行时在目标系统中创建一个虚拟目录或者WEB站点:
1、 打开 Internet Information Services 视图
2、 在 Web Sites 窗口中单击右键,选择 Add Web Site 。 InstallShield 添加一个新的 WEB 站点。
3、 选择这个 WEB 站点来定义它的设置
4、 在 View Filter 列表中,选择你想与虚拟目录相关联的功能部件
提示: View Filter 可以让你指定安装程序中与虚拟目录关联的构件。但这不适用于 web 站点与功能部件的关联,因为 WEB 站点与构件无关。
5、 右键单击这个新的 WEB 站点并选择 New VirtualDirectory 。 InstallShield 添加一个新的虚拟目录。
6、 选择虚拟目录来定义它的属性。
向一个IIS虚拟目录添加文件
要添加文件到IIS 虚拟目录:
1、 如果你没有WEB 站点,先添加一个WEB 站点。InstallShield 自动向 Files 视图中添加 [IISROOTFOLDER] 预定义路径。
2、 打开 Files 视图
3、 在 Feature 列表中,选择你想添加文件的功能部件
4、 在 Destinationcomputer’s folders 面板中,添加文件到 [IISROOTFOLDER] 目录或者它的子目录。
5、 打开 InternetInformation Services 视图
6、 创建一个虚拟目录。
7、 单击 VirtualDirectory 标签
8、 选择 A directorylocated on this computer 选项
9、 在 Local Path 框中,输入与刚才在 Files 视图中包含添加的新文件的目录相同的目标目录。
要迅速的添加 [IISROOTFOLDER] 目录到框中,除了可以手工输入路径,还可以使用 Browse,create, or modify a directory entry 来选择目录。
在安装时,文件复制到目标路径。另外,如果目标系统上存在IIS,那么虚拟目录将配置指向到指定目录。
删除虚拟目录
要在安装程序中删除一个虚拟目录:
1、 打开 Internet Information Services 视图
2、 在 Web Sites 窗口中,右键单击虚拟目录并选择 Delete 即可
提示:如果你不想程序卸载时删除虚拟根,在基于 Windows Installer 的项目中配置 permanent 属性为 YES ,在 InstallScript 项目中配置 Uninstall 属性为 NO 。
添加应用程序池
要在IIS 里面创建一个新的应用程序池:
1、 打开 Internet Information Services 视图
2、 右键单击 ApplicationPools 窗口并选择 AddApplication Pool ,来添加一个新的应用程序池
3、 重命名这个应用程序池,并配置它的相关属性
删除应用程序池
要从安装中删除一个应用程序池:
1、 打开 Internet Information Services 视图
2、 在 ApplicationPools 窗口中,右键单击应用程序池并选择 Delete 即可。
提示:在 InternetInformation Services 视图中删除一个应用程序池,即使在 IIS 管理控制台中有一个同名的应用程序池或者应用程序池在构件中并未标记为永固的状态,也并不能保证在安装程序运行时它会被卸载。更多信息,参考卸载 WEB 服务扩展和应用程序池。
添加WEB服务扩展
要在安装中添加一个web 服务扩展:
1、 打开 Internet Information Services 视图
2、 在 Web ServiceExtensions 窗口中单击右键选择 Add WebService Extension 。 InstallShield 将添加一个新的 web 服务扩展
3、 重命名 Web 服务扩展,并配置相关属性
删除Web服务扩展
要从安装程序中删除一个Web 服务扩展:
1、 打开 Internet Information Services 视图
2、 在 Web ServiceExtension 窗口中,右键单击Web 服务扩展 并选择 Delete 即可。
提示:在 InternetInformation Services 视图中删除一个 Web 服务扩展,即使在 IIS 管理控制台中有一个同名的 Web 服务扩展或者 Web 服务扩展在构件中并未标记为永固的状态,也并不能保证在安装程序运行时它会被卸载。更多信息,参考卸载 WEB 服务扩展和应用程序池。
卸载Web服务扩展和应用程序池
提示: Web 服务扩展,应用程序池及关联属性只有在机器上安装 IIS6.0 才可用。 IIS6.0 只在 Windows Server 2003 平台下支持。
任意的 Web 服务扩展和应用程序池如果与安装中的应用程序池和 Web 服务扩展同名,当安装程序中与之关联的功能部件卸载时,它们也会被卸载,除非相应的构件标记为永固。即使这些应用程序池护着 Web 服务扩展起初并不是由安装程序创建的,如果它们与安装程序中的同名也同样会被删除。但是有一个特例就是默认的应用程序池,叫做 DefaultAppPool ,永远不会被卸载程序删除。
要确保一个 Web 服务扩展在卸载期间被删除:
1、 打开 Internet Information Services 视图
2、 在 Web ServiceExtension 窗口中,单击选择相应的Web 服务扩展
3、 在 Web Service Extension 标签中,去掉 MarkComponent as Permanent 的选择
要确保一个 Web 服务扩展在卸载期间被卸载:
1、 打开 Internet Information Services 视图
2、 在 ApplicationPool 窗口中,单击选择相应的Web 服务扩展
3、 单击 General标签
4、 去掉 MarkComponent as Permanent 的选择
提示:如果 MarkComponent as Permanent 选择框是选中的,那么 Web 服务扩展或者应用程序池在卸载后悔保留在目标系统上。
配置额外的IIS虚拟目录设置
当你在 InternetInformation Services 视图中选择一个 Web 站点中的虚拟目录是,这些标签中只显示了 IIS 虚拟目录的主要公共设置。你可以配置其它的没有在这些标签中显示的其他有关 IIS 虚拟目录的设置。
要配置 IIS 视图中没有显示的设置:
1、 创建一个 VBScript 自定义操作( custom action )
2、 在执行顺序的 InstallFinalize 之前插入这个自定义操作
3、 使用 ADSI 对象模型来配置这些设置
可以查看 MSDN 库来指导如何使用 ADSI 对象模型来配置 IIS 虚拟目录设置,或者可以使用 IIS 视图中的 Advanced 标签来配置这些额外的设置。
为Web站点或者虚拟目录配置自定义错误信息
当用户尝试访问一个 Web 站点产生超文本传输协议错误是,用户的浏览器中会显示一个描述这个错误的默认信息。你可以在安装程序中配置 IIS 使用自定义错误信息,即引导 HTTP 错误代码到一个文件或 URL 来取代默认的错误信息。
要为Web站点或者虚拟目录配置自定义错误信息:
1、 创建一个包含自定义错误信息的文件并添加到安装中
2、 打开IIS 视图
3、 选择你要自定义HTTP 错误信息的Web 站点或者虚拟目录。它们的设置显示在右测窗口。
4、 选择 Custom Errors 标签
5、 选择你想更改的 HTTP 错误代码并单击 Edit 。打开 Error Mapping Properties 对话框
6、 要映射一个错误代码到一个文件:
A、 在 Message Type 列表中,选择 File
B、 在 File 框中,输入你的安装程序中的自定义错误信息文件的路径和文件名,或者单击浏览按钮来定位这个文件
要映射一个错误代码到一个 URL
A、 在 Message Type 列表中,选择 URL
B、 在 URL 框中,输入指向自定义错误信息的 URL 。
在目标机器上部署Web服务
在目标系统上部署Web 服务需要复制Web 服务的文件到特殊的位置,并为这个目录分配一个虚拟目录名称,这样Web 服务才能通过HTTP 访问。
要在目标机器上部署Web服务:
1、 在 Files and Folders 视图中,选择在目标机器上的安装文件的目录,并在目录中添加文件。
2、 切换到 InternetInformation Services 视图,并创建一个虚拟目录
3、 在 TargetDirectory 中,选择刚才与在 Files andFolders 中选择的相同目标目录。
在安装中,文件将被复制到目标目录。另外,如果目标机器上有 IIS ,那么虚拟目录也会配置到目标目录上。
添加IISROOTFOLDER 支持
IISROOTFOLDER 是一个 InstallShield 用来确定目标系统上Web 服务的根目录的目录变量。如果你在安装中使用了IIS 功能并添加了一个Web 站点,这个 IISROOTFOLDER 变量会自动添加。
提示:所有的在Filesand Folders 视图中添加到IISROOTFOLDER 目录的文件都将安装到目标机器上的Web 服务的根目录。如果目标机器上没有安装IIS ,那么文件将被复制到磁盘根目录。
IIS_PORT_NUMBER属性
这个 IIS_PORT_NUMBER 属性已经不再使用。如果在早期的项目版本中存在这个属性,更新程序将自动处理。更新程序将创建一个Web 站点设置这个端口号部分为 [IIS_PORT_NUMBER] 。当你创建一个新的 Web 站点时你可以使用任意属性或硬编码数。
IIS_VERSION属性
这个属性只用在下列类型的项目中:
- Basic MSI
- InstallScript MSI
这个属性中包含IIS 主目录的路径,默认是在c:/inetpub/wwwroot 。
IIS_WEBSITE_NAME属性
这个 IIS_WEBSITE_NAME
属性也已经不再使用。如果在早期的项目版本中存在这个属性,更新程序将自动处理。更新程序将创建一个Web 站点设置这个站点号部分为 [IIS_WEBSITE_NUMBER] 。 对于一个新的Web 站点时你可以使用任意属性或硬编码数。