3

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

有谁知道如何做到这一点,或者即使可以做到?与备份本身不同,我无法在网上找到任何此类示例。

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

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

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

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

4

1 回答 1

1

我使用命名备份尝试了此操作,并对其进行了一些调整:

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
  });
}
于 2010-02-08T16:49:21.333 回答