web developer tips (46):使用Web Deployment Tool进行Web部署迁移

原文地址:that Web Deployment “migrate” operation is “sync” operation with all migration rules enabled

从IIS6 迁移一个应用或整个服务器到 IIS7,需要使用“msdeploy”命令行工具来完成迁移(migrate)。
例如,你可以在服务器上建一个“migration”的包,如下:
msdeploy -verb:sync -source:webserver60 -dest:package=c:\migratedServer.zip
迁移意味着移动更多组件,然后进行同步。有关使用 Web Deployment Tool 进行部署迁移请参阅:
Migrate from IIS 6.0 to IIS 7.0

同样的在C#里可以使用web部署的公用的APIs,你可以写C#进行同步(sync),只是需要启用所有的迁移规则。c#示例代码如下:
http://www.watch-life.net/visual-studio/web-deployment-migrate-operation.html


using System;
using Microsoft.Web.Deployment;

static class Program
{
    static void Main()
    {
        DeploymentWellKnownProvider sourceProvider = DeploymentWellKnownProvider.WebServer60;
        string sourcePath = "";     // no path needed for webserver providers
        DeploymentBaseOptions sourceBaseOptions = new DeploymentBaseOptions();
        /*
         * set base options for source object (webserver)
         */

        DeploymentWellKnownProvider destinationProvider = DeploymentWellKnownProvider.Package;
        string destinationPath = @"c:\migratedServer.zip";
        DeploymentBaseOptions destinationBaseOptions = new DeploymentBaseOptions();
        DeploymentSyncOptions destinationSyncOptions = new DeploymentSyncOptions();

        // add all migration rules to sync options
        DeploymentRuleCollection availableRules = DeploymentSyncOptions.GetAvailableRules();
        foreach (DeploymentRule rule in availableRules)
        {
            if (rule.Name.Equals("MigrateGeneral") || 
                rule.Name.Equals("MigrateDependencyCheck") || 
                rule.Name.Equals("MigrateAnonymousUser"))
            {
                destinationSyncOptions.Rules.Add(rule);
            }
        }
        
        /*
         * set other base and sync options for destination object (package)
         */

        using (DeploymentObject deploymentObject = DeploymentManager.CreateObject
            (
                sourceProvider, 
                sourcePath, 
                sourceBaseOptions
             ))
        {


            deploymentObject.SyncTo
                (
                    destinationProvider,
                    destinationPath,
                    destinationBaseOptions,
                    destinationSyncOptions
                );
        }
    }
}

Web Deployment Tool 下载地址:
Web Deployment Tool 1.0 RC x86
Web Deployment Tool 1.0 RC x64

或者通过Web Platform Installer 下载



微信扫描下方的二维码阅读本文

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注