部署LightSwitch应用程序到IIS6 &自动部署包中

[原文发表地址]  Deploying LightSwitch Applications to IIS6 & Automating Deployment Packages

[原文发表时间] 2012-03-23 13:34

许多人问我如何发布一个LightSwitch 应用程序到IIS6中。在几位团队成员的帮助下,我们**终于最终**将步骤写下来了。这是在 Windows Server 2008上IIS7的详细部署指南,你应先熟悉一下,那儿有很多关于如何部署的信息:

部署指南: 如何配置 Web Server来托管 LightSwitch应用程序

在这篇文章中,我将向你们展示基本必需步骤来配置 安装有IIS6的Windows 2003 Server 。我也会向你展示当你需要自动化一个Visual Studio LightSwitch所创建的部署包时, 你所需要使用的MSDeploy 命令。

在Windows 2003 Server中使用Web Platform Installer安装IIS6

步骤 1 安装 Web Platform Installer

你可以使用Web Platform Installer(WPI)来快速安装Windows web server。这使安装一台你所需要的所有东西的机器变得超级简单。虽然你可以手动执行此操作,但我强烈建议你以这种方式安装你的 LightSwitch 服务器。 这将为你安装 IIS 和 Web Deploy(如果你还没有安装它的话) ,并正确地配置它们。

若要开始,请选择顶部的产品链接,然后选择左侧的工具。那儿你会看到LightSwitch Server Runtime的两个选项。一个选项是安装 SQL Server Express, 称为"Visual Studio LightSwitch 2011 Server Runtime和本地 SQL",另一个是"不使用本地 SQL"。如果你已经在计算机上安装了一个 SQL Server 版本,或者如果你在另一台计算机上托管数据库,你可以选择"不使用本地 SQL"选项

选择你想要的选项,然后单击安装。在安装期间,你将需要重新启动几次。

步骤2 启动 Web Deployment Agent

接下来,我们需要验证是否启动了Web Deployment Agent服务。打开服务,右击 Web Deployment Agent服务,选择开始,如果它还没有启动。

image

步骤 3 :为网络访问配置你的 Web 站点和数据库

为了让其他计算机通过Windows 2003机器中的 HTTP访问你的服务器站点,你需要配置 Windows 防火墙。单击高级选项卡,选择网络连接,然后单击设置按钮。在服务选项卡上取消勾选"Web 服务器 (HTTP)",并验证你的 web 服务器的名称,然后单击确定。

image

现在你的网络中的计算机将能够通过 https:// SERVERNAME导航到你的服务器。你需要验证的下一件事情是你的数据库服务器也是可访问的。此配置与我在部署指南中使用 SQL Configuration Manager所描述的一样,因此请参考此博文。

步骤 4 :从 Visual Studio LightSwitch中部署

既然,你的服务器设置好了,你可以直接从 Visual Studio LightSwitch 中进行部署。请记住,当你直接部署到 IIS6时, 服务 URL 应该使用 http,而不是 https。IIS6不支持Https web 部署。有关部署向导的分步说明的信息,请参阅部署指南

如果你不是直接从 Visual Studio LightSwitch 中部署到你的服务器上,而是在磁盘上创建一个部署包,请参阅这篇文章的底部链接来了解如何在 IIS6 上安装包。

在没有Web Platform Installer 的Windows 2003 Server上安装 IIS6

第1步 安装 IIS6

首先,你需要在你的 Windows 2003 盒上安装 IIS6。你可以看看这篇文章来了解如何执行此操作:安装 IIS (IIS 6.0)

第2步 安装 .NET Framework 4.0

下一步,为了获取 ASP.NET ,你需要在盒中安装.NET Framework 4.0

3 步: 安装 Web Deploy 1.1

为了发布部署软件包,你需要安装 Web Deploy 1.1。请基于你的服务器体系结构,安装适当的包,请参阅此文档以查看安装的详细信息: Web 部署工具安装

第4步 安装Visual Studio LightSwitch 2011 Server Runtime

5 步: 启动 Web Deployment Agent

打开服务,右击Web Deployment Agent服务,如果它还没有被启动,请选择启动。请参阅上节中的步骤 2。

第6步: 为网络访问配置你的 Web 站点和数据库

为了让其他计算机通过Windows 2003 机器上的HTTP访问你的服务器的网站,你需要配置 Windows 防火墙。有关如何执行此操作的信息,请参阅上一部分中的步骤 3。

7 步: 设置 .XAP 文件的 MIME 类型

在 IIS Manager中,为.xap 文件扩展名验证mime 类型。右击默认网站,并选择属性,然后选择 HTTP 标头选项卡,单击 MIME Types… ,将 .xap扩展名映射为application /x silverlight application,如图所示:

image

8 步:从 Visual Studio LightSwitch中部署

既然,你的服务器设置好了,你可以直接从 Visual Studio LightSwitch 中进行部署。请记住,当你直接部署到 IIS6时, 服务 URL 应该使用 http,不是 https。IIS6不支持 Https web 部署。有关部署向导的分步说明信息,请参阅部署指南

如果你不是直接从 Visual Studio LightSwitch 中部署到你的服务器,而是在磁盘上创建部署包,请参见下面有关步骤来了解如何在 IIS6 上安装包。

导入LightSwitch 部署包到IIS中

注: 这些说明仅适用于Visual Studio LightSwitch 的RTM (版本 1 版本(不适用于 Visual Studio 11 测试版中的 LightSwitch )。这些说明适用于 IIS6 7+

与其从 LightSwitch 部署向导中能使用直接部署,不如在磁盘上创建部署包。(关于创建部署包的分步说明,并将其部署到 IIS7的信息,请参见部署指南)。

为了部署到 IIS6,你需要使用 MSDeploy 命令行工具。如果你打算创建或更新一个远程数据库,你还需要在此计算机上安装SQL Server Management Objects。你可以通过Web Platform Installer引用它们,并选择 SQL Server Management 2008 R2 Express 或使用本地 SQL的 Visual Studio LightSwitch 2011 Server Runtime。你还可以直接从这里获取它们。如果你已经安装了 SQL 或 SQL Express,然后你可以跳过此先决条件。

1.请确保以计算机的管理员身份登录。

2.将部署包 (即 Application1.zip) 复制到 IIS6 服务器计算机中。

3.下一步,创建一个文件,其中包含了你需要传递给 MSDeploy 的参数。通过执行此命令,你可以从包中获得所需的参数。打开一个命令提示符,并假定部署包的路径为 C:\Publish\Application1.zip,请键入:

> "C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:getParameters -source:package=C:\Publish\Application1.zip

这将列出你所需要的参数。有些参数将会随着你正在使用的身份验证类型而更改。对于任意LightSwitch应用程序,你需要指定以下内容:

<?xml version="1.0" encoding="utf-8"?>

<parameters>

<setParameter name="DatabaseAdministratorConnectionString"
value="Data Source=servername\SQLEXPRESS;Initial Catalog=Application1;
User ID=admin;Password=adminPassword" />

<setParameter name="DatabaseServer" value="servername\SQLEXPRESS" />

<setParameter name="DatabaseName" value="Application1" />

<setParameter name="DatabaseUserName" value="dbuser" />

<setParameter name="DatabaseUserPassword" value="dbpassword" />

<setParameter name="Application1_IisWebApplication" value="Default Web Site/Application1" />

</parameters>

请注意 DatabaseAdministratorConnectionString 只由此过程用于创建/更新数据库。DatabaseUserName 和 DatabaseUserPassword 的值被用于在web.config 中的构造连接字符串,当你的应用程序在运行时,它是LightSwitch 中间层使用的凭据。

如果你使用的是 Windows 身份验证,你需要指定一个额外的参数:

<setParameter name="Application Administrator User Name" value="DOMAIN\UserName" />

如果你使用的是Forms身份验证,你需要指定三个额外的参数:

<setParameter name="Application Administrator User Name" value="UserName" />

<setParameter name="Application Administrator Full Name" value="Full Name" />

<setParameter name="Application Administrator Full Password" value="strongPassword" />

4.将参数XML 文件保存在与部署包相同的位置中(即 Application1.Parameters.xml)

5.运行以下命令来导入包,使用IIS 服务器的名称替换下面的ServerName:

> "C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:sync -source:package=c:\Publish\Application1.zip –dest:auto,computerName=https:// ServerName /MSDEPLOYAGENTSERVICE -setParamFile:c:\Publish\Application1.Parameters.xml

如果你在连接到部署服务时遇到任何错误,然后仔细检查该服务是否正在运行 (如以上所示),并验证你是以计算机的管理员身份登录的。

6.如果你的应用程序正在使用Forms或 Windows 身份验证,那么你还需要运行以下命令来设置数据库中的 Admin 用户,那样你可以首次登录。你需要指定web.config 的位置来做到这一点。

对于 Windows 身份验证,请运行:

>”C:\Program Files\Microsoft Visual Studio 10.0\LightSwitch\1.0\Tools\Microsoft.LightSwitch.SecurityAdmin.exe” /createadmin
/config:"c:\inetpub\wwwroot\
Application1 \web.config" /user:" DOMAIN\UserName "

对于Forms身份验证,请运行:

>”C:\Program Files\Microsoft Visual Studio 10.0\LightSwitch\1.0\Tools\Microsoft.LightSwitch.SecurityAdmin.exe” /createadmin
/config:"c:\inetpub\wwwroot\
Application1 \web.config" /user:" UserName " /fullname:" Full Name " /password:" strongPassword "

你可以在IIS6 或 IIS7 的机器上执行相同的步骤。

总结

如果你可以启用它,直接部署会省去很多工作。LightSwitch 发布向导可以为你直接从 LightSwitch开发环境中执行所有必要的步骤。然而,往往你不能 (也不想)访问部署服务器。这就是为什么 LightSwitch 可以在磁盘上创建部署软件包。使用IIS7时,你可以使用IIS manager中的GUI来导入这些软件包,但是在 IIS6中,你需要使用上述所示的 MSDeply 命令行。

我们正在对Visual Studio 11中的 LightSwitch部署做改进。在我的下一篇文章中,我将会演练一些增强的功能,特别是,现在当你创建包时,参数和命令文件将会与部署包一起为你自动生成。这使添加你的设置变得真的很容易。下一次再见 … …

希望大家喜欢 !