3

ここで、C# で IIS メタベースをバックアップする方法を説明しているスタック オーバーフローの質問を見つけまし。ただし、C# コードを使用してこれらのバックアップ (または IIS で手動で作成されたバックアップ) を復元するのは困難です。

誰かがこれを行う方法を知っていますか、それができるかどうかさえ知っていますか? バックアップ自体とは異なり、Web 上でこの例を見つけることができませんでした。

次のコードを試しましたが、「呼び出しのターゲットによって例外がスローされました」というエラーが表示されます

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 に答える