我发现 Stack Overflow 问题描述了如何在 C# 中备份 IIS 配置数据库 这里, ,并且我已经成功地使用引用的代码使其工作 这里. 。但是,我在使用 C# 代码恢复这些备份(或者实际上在 IIS 中手动创建的任何备份)时遇到困难。

有谁知道如何做到这一点,或者是否可以做到?与备份本身不同,我在网上找不到任何这样的示例。

我尝试了以下代码,但收到错误 “调用目标已引发异常”

using (DirectoryEntry localhostIIS = new DirectoryEntry("IIS://LocalHost"))
{
   localhostIIS.Invoke("Restore", new object[] { string.Empty, 0, 0});
}

现在,虽然我确信我正在使用错误的名称和/或对象结构调用该方法,但我无法找到 正确的 在任何地方调用它的方式......

有人能指出我正确的方向吗?

有帮助吗?

解决方案

我尝试使用命名备份进行此操作,并通过一些调整使其正常工作:

const uint MD_BACKUP_HIGHEST_VERSION = 0xfffffffe;
const uint MD_BACKUP_NEXT_VERSION = 0xffffffff;
const uint MD_BACKUP_SAVE_FIRST = 2;

using(DirectoryEntry de = new DirectoryEntry("IIS://Localhost"))
{
  // Backup using the next version number (MD_BACKUP_NEXT_VERSION)
  de.Invoke("Backup", new object[] {
      "test-backup",
      MD_BACKUP_NEXT_VERSION,
      MD_BACKUP_SAVE_FIRST
  });

  // Restore the highest version number (or specify the specific version)
  de.Invoke("Restore", new object[] {
    "test-backup",
    MD_BACKUP_HIGHEST_VERSION,
    0
  });
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top