将网站从 IIs6 移至 IIS7.5

将网站从 IIs6 移至 IIS7.5

我需要尽快将网站从 IIS6 (Win Server 2003) 移至 IIS7.5 (Win Server 2008)。最好是明天。

该网站本身是经典 asp(vbscript)和一次性 asp.net(C#)应用程序的完美组合(每个 asp.net 应用程序都在其自己的虚拟目录中,并具有自包含的 web.config)。

如果相关的话,这是一种由 40 或 50 个不相连的微型网站组成的研究网站。每个微型网站通常都是一个简单的表单,允许用户提交表单,然后在 sqlserver db 上运行存储过程并显示结果图表和/或表格。

几乎无需担心安全问题。数据库连接信息位于中央文件(在经典 asp 的情况下)或应用程序的单独 web.config 中(那里有很多重复)

给练习添加一点趣味......

  • 我不知道如何管理 IIS
  • 公司不再雇用系统管理员或设置此系统的人。(他们也不会再雇用我太久,但我的职业自豪感不允许我放弃这项任务)。
  • 这些服务器位于互相有防火墙的网络上,我必须执行复杂的多步骤过程才能将任何内容从一个服务器复制到另一个服务器。

有人能给我指出一个完成上述目标的速成教程吗?

我有:

  1. 新机器上网站文件系统的完整副本
  2. 在新系统上安装了第三方图表工具
  3. config.xml 文件,可从“所有任务 -> 将配置保存到文件”右键菜单中选择。似乎没有办法进口但在新系统上却并非如此。

较新的 IIS 管理器具有完全不同的 UI,我完全迷失了。

请帮忙。


感谢 TristanK 的评论,取得了一些进展

  1. 在 IIS6 服务器上安装 msdeploy(完整版)

假设示例配置是合理的,因此用 msdeploy.exe.configsettings.example 替换默认的空 msdeploy.exe.config

  1. 获取站点 ID

    • 打开IIS6管理器
    • 从左侧窗格的树中选择“网站”
    • ID 是其中一列(我的网站是 1894277648)
  2. 打开 Web 部署控制台窗口

开始菜单 >> 程序 >> IIS 7.0 扩展 >> Web Deploy 命令行

  1. 获取站点依赖项

    C:\Program Files\IIS\Microsoft Web Deploy V2>msdeploy -verb:getDependencies -source:metakey=lm/w3svc/1894277648>research-dependencies.xml

笔记:

  • 使用网站 ID 1894277648)
  • 我假设这是 xml。不过我并不关心

    1. 包装站点

    C:\Program Files\IIS\Microsoft Web Deploy V2>msdeploy -verb:sync -source:metakey=lm/w3svc/1894277648 -showSecure -dest:package=research.zip > research.log

    1. 将文件复制到IIS7服务器

    2. 备份 IIS7 服务器

  • 查看我们已有的备份 C:\Windows\System32\inetsrv>appcmd list backup BACKUP "CFGHISTORY_0000000006" BACKUP "CFGHISTORY_0000000007" BACKUP "CFGHISTORY_0000000008" BACKUP "CFGHISTORY_0000000009" BACKUP "CFGHISTORY_0000000010" BACKUP "CFGHISTORY_0000000011" BACKUP "CFGHISTORY_0000000012" BACKUP "CFGHISTORY_0000000013" BACKUP "CFGHISTORY_0000000014" BACKUP "CFGHISTORY_0000000015"

  • 进行新的备份

    C:\Windows\System32\inetsrv>appcmd 添加备份“在尝试 msdeploy 从 IIS6 服务器迁移之前进行备份”备份对象“在尝试 msdeploy 从 IIS6 服务器迁移之前进行备份”已添加

  • 检查它是否已注册 C:\Windows\System32\inetsrv>appcmd 列表备份 BACKUP “在尝试 msdeploy 从 OLD-IIS6 服务器迁移之前备份” BACKUP “CFGHISTORY_0000000006” BACKUP “CFGHISTORY_0000000007” BACKUP “CFGHISTORY_0000000008” BACKUP “CFGHISTORY_0000000009” BACKUP “CFGHISTORY_0000000010” BACKUP “CFGHISTORY_0000000011” BACKUP “CFGHISTORY_0000000012” BACKUP “CFGHISTORY_0000000013” BACKUP “CFGHISTORY_0000000014” BACKUP “CFGHISTORY_0000000015”

    1. 将网站部署到IIS7服务器
  • 设置 research-dependencies.xml 中列出的应用程序池

  • 安装第三方图表工具

  • 首先尝试使用“whatif”标志

    msdeploy -verb:sync -source:package="D:\temp\website\research.zip" -dest:metakey=lm/w3svc/1 -replace:match="I:",replace="D:" -whatif > WebDeploySync.log

注意:- lm/w3svc/1 -> “1” - -replace 标志来处理更改的驱动器号

  • 现在尝试真正的

    msdeploy -verb:sync -source:package="D:\temp\website\research.zip" -dest:metakey=lm/w3svc/1 -replace:match="I:",replace="D:" > WebDeploySync.log

** 仍有待完成 **

  • 处理 web.config (?) 问题 HTTP 错误 500.19 - 内部服务器错误 无法访问所请求的页面,因为该页面的相关配置数据无效

  • 修复 asp 配置文件和每个 web.config 中的数据库连接字符串

  • ? 将 httpodbc.dll 复制到 windows\system32\inetsrv ?

  • 检查 isapi (?) perl 是否指向正确的驱动器号

  • 手动检查大约 50 份报告是否“有效”(对于某些“有效”值)

答案1

使用虚拟目录时要小心。.config 文件以级联方式从主站点继承,这可能会造成混淆。

答案2

  1. 备份站点文件/db等
  2. 如果这是一个普通网站,那么您将面临的大多数问题都与 iis 6 和 iis 7 之间的 webconfig 更改有关MSDN 网站
  3. 如果该网站是 cms 网站,例如 [Ektron、orchard、umbracoo],那么您可以找到各种 iis 版本的默认 weconfig [您可以使用超越工具合并 webconfig 文件]
  4. 应用程序池:.net 框架、托管管道和身份将是一个因素
  5. Dll 可能会导致问题
  6. 适当的文件夹权限 [iis_iusr、networkservices 或应用程序池 idty 等]
  7. 事件日志、错误页面也会提供线索

相关内容