Web部署到2个单独的Web服务器?

时间:2012-10-23 15:47:35

标签: c# asp.net asp.net-mvc-3 visual-studio-2010 webdeploy

我有一个MVC3应用程序,我使用Visual Studio中的“Web发布”功能部署到IIS 7.5。我需要设置第二台服务器,它将是硬件负载平衡的,并将镜像第一台服务器上的设置。

我知道Web Farm Framework,这是一个选项,但是我不喜欢控制器服务器是链中最薄弱环节的想法。我想我宁愿只使用硬件负载均衡器来引导流量。

是否可以编写一个手动Web Deploy脚本,每次运行时都会针对2个不同的服务器?

1 个答案:

答案 0 :(得分:1)

以下是我使用TFS进行此操作的方法:

  1. 创建解决方案配置。选择Build - >配置管理器。在Active Solution Configuration下拉列表中,选择New并输入值(DEV1,DEV2等)。确保项目上下文中的配置列是DEV1 for DEV1配置等

  2. 创建发布配置文件(Build - > Publish)。为每个服务器创建配置文件(例如,DEV1和DEV2)。在Connections选项卡中,选择Web Deploy并输入服务器地址(使用/msdeploy.axd)。此服务器必须安装Web部署(我正在使用Web Deploy 3.5)。验证您的连接以确保所有内容都连接,然后下一步,然后关闭。不要按发布。保存后,将在项目>下的项目中创建一个新文件。发布配置文件的名称类似于DEV1.pubxml。此XML文件包含所需的所有信息。

  3. 创建用于转换的Web配置文件(右键单击web.config并选择Add Config Transform)。这将允许您根据所执行的部署类型具有不同的Web配置值。例如,当您向PROD发布连接字符串等时,可以替换其他值。您可以阅读有关此here

  4. 的更多信息。
  5. 在文本编辑器中打开项目文件(我正在使用c#,因此我的项目文件是.csproj)。按此示例搜索DEV1。你会遇到一个包含DEV1 | AnyCPU的线路。这将是PropertyGroup标记的属性中的条件。在其下方,添加PublishProfile标记。以下是屏幕截图:

  6. Adding reference to the Publish Profile

    现在你已经准备好了。我使用了TFS Build,在Build定义文件中你唯一需要记住的是在Items to Build(在Process选项卡下)下设置正确的配置。

    Items to build setting in the build definition in TFS

    您无需在MSBuild Arguments字段中设置要构建的目标,因为这些值将从“发布配置文件”中选取。

    现在一切都已设置为运行构建。如果你的构建有问题(给你错误的配置不正确),我在这里回答:TFS 2012 Build Definition for web deployment ignores parameters defined in project files